X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=hooke%2Fplugin%2Fsystem.py;h=3d4c7262e265de00083e15c0a7b7839bfbf7c7cc;hb=275b19d8224c433ad494f47504840185bec988f3;hp=5a56deda381c7aa56b37b2efff97f30196df70ea;hpb=435feb33089c41f96aa5c77baee37339a0f9ecd8;p=hooke.git diff --git a/hooke/plugin/system.py b/hooke/plugin/system.py index 5a56ded..3d4c726 100644 --- a/hooke/plugin/system.py +++ b/hooke/plugin/system.py @@ -1,3 +1,21 @@ +# Copyright (C) 2010 W. Trevor King +# +# This file is part of Hooke. +# +# Hooke is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# Hooke is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General +# Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with Hooke. If not, see +# . + """The `system` module provides :class:`SystemPlugin` and several associated :class:`hooke.command.Command`\s for interacting with the operating system and execution environment. @@ -9,22 +27,21 @@ import subprocess import sys from ..command import Command, Argument -from ..plugin import Builtin +from . import Builtin class SystemPlugin (Builtin): def __init__(self): super(SystemPlugin, self).__init__(name='system') - - def commands(self): - return [ListDirectoryCommand(), GetWorkingDirectoryCommand(), - ChangeDirectoryCommand(), SystemCommand()] + self._commands = [ + ListDirectoryCommand(self), GetWorkingDirectoryCommand(self), + ChangeDirectoryCommand(self), SystemCommand(self)] class ListDirectoryCommand (Command): """List the files in a directory. """ - def __init__(self): + def __init__(self, plugin): super(ListDirectoryCommand, self).__init__( name='ls', aliases=['dir'], arguments=[ @@ -35,7 +52,7 @@ Path to the directory whose contents get listed. Defaults to the current working directory. """.strip()), ], - help=self.__doc__) + help=self.__doc__, plugin=plugin) def _run(self, hooke, inqueue, outqueue, params): outqueue.put('\n'.join(sorted(os.listdir(params['path'])))) @@ -43,9 +60,9 @@ current working directory. class GetWorkingDirectoryCommand (Command): """Get the current working directory. """ - def __init__(self): + def __init__(self, plugin): super(GetWorkingDirectoryCommand, self).__init__( - name='cwd', aliases=['pwd'], help=self.__doc__) + name='cwd', aliases=['pwd'], help=self.__doc__, plugin=plugin) def _run(self, hooke, inqueue, outqueue, params): outqueue.put(os.getcwd()) @@ -53,7 +70,7 @@ class GetWorkingDirectoryCommand (Command): class ChangeDirectoryCommand (Command): """Change the current working directory. """ - def __init__(self): + def __init__(self, plugin): super(ChangeDirectoryCommand, self).__init__( name='cd', arguments=[ @@ -64,7 +81,7 @@ Path of the directory to change into. Default to the user's home directory. """.strip()), ], - help=self.__doc__) + help=self.__doc__, plugin=plugin) def _run(self, hooke, inqueue, outqueue, params): os.chdir(os.path.expanduser(params['path'])) @@ -72,7 +89,7 @@ directory. class SystemCommand (Command): """Execute a system command and report the output. """ - def __init__(self): + def __init__(self, plugin): super(SystemCommand, self).__init__( name='system', arguments=[ @@ -82,7 +99,7 @@ class SystemCommand (Command): Command line to execute. """.strip()), ], - help=self.__doc__) + help=self.__doc__, plugin=plugin) def _run(self, hooke, inqueue, outqueue, params): p = subprocess.Popen(