diff --git a/lib/plugins/__init__.py b/lib/plugins/__init__.py new file mode 100644 index 00000000..ae15b74f --- /dev/null +++ b/lib/plugins/__init__.py @@ -0,0 +1,6 @@ +class Plugin(object): + def run(self, args): + raise NotImplementedError() + +# vim:sw=4:ts=4:et: + diff --git a/lib/plugins/shell/__init__.py b/lib/plugins/shell/__init__.py new file mode 100644 index 00000000..e53b9a23 --- /dev/null +++ b/lib/plugins/shell/__init__.py @@ -0,0 +1,24 @@ +import subprocess + +from .. import Plugin + +class ShellPlugin(Plugin): + def run(self, args): + if 'cmd' not in args: + raise RuntimeError('No cmd parameter specified') + + cmd = args['cmd'] + output = None + error = None + + try: + output = subprocess.check_output(cmd, + stderr=subprocess.STDOUT, + shell=True) + except subprocess.CalledProcessError as e: + error = e.output + + return output, error + +# vim:sw=4:ts=4:et: +