Source code for nuka.tasks.shell

# -*- coding: utf-8 -*-
"""
command line related tasks
"""
from nuka import utils
from nuka.task import Task


[docs]class commands(Task): """run multiple command""" def __init__(self, cmds=None, **kwargs): kwargs.setdefault('name', cmds) super(commands, self).__init__(cmds=cmds, **kwargs) def do(self): for cmd in self.args['cmds']: kwargs = {} watch = self.args.get('watch') if watch: # pragma: no cover kwargs['watcher'] = utils.default_watcher(delay=watch) res = self.sh(cmd, **kwargs) res.pop('stderr') return res
[docs]class command(Task): """run a task""" def __init__(self, cmd=None, **kwargs): kwargs.setdefault('name', cmd) super(command, self).__init__(cmd=cmd, **kwargs) def do(self): kwargs = {} watch = self.args.get('watch') if watch: # pragma: no cover kwargs['watcher'] = utils.default_watcher(delay=watch) res = self.sh(self.args['cmd'], **kwargs) res.pop('stderr') return res
[docs]class shell(Task): """run a shell line (allow pipes)""" def __init__(self, cmd=None, **kwargs): kwargs.setdefault('name', cmd) super(shell, self).__init__(cmd=cmd, **kwargs) def do(self): kwargs = {'shell': True} watch = self.args.get('watch') if watch: # pragma: no cover kwargs['watcher'] = utils.default_watcher(delay=watch) cmd = self.args['cmd'] if isinstance(cmd, list): cmd = ' '.join(cmd) res = self.sh(cmd, **kwargs) res.pop('stderr') return res