summaryrefslogtreecommitdiff
path: root/scripts/python/shell.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/python/shell.py')
-rw-r--r--scripts/python/shell.py136
1 files changed, 0 insertions, 136 deletions
diff --git a/scripts/python/shell.py b/scripts/python/shell.py
deleted file mode 100644
index 1d14b3db5..000000000
--- a/scripts/python/shell.py
+++ /dev/null
@@ -1,136 +0,0 @@
-
-# =============================================================================
-# shell.py (c) March 2006 by Kolter <kolter+dev@openics.org>
-#
-# Licence : GPL v2
-# Description : running shell commands in WeeChat
-# Syntax : try /help shell to get some help on this script
-# Precond : needs weechat > 0.1.7 to run else it will crash WeeChat ;-)
-#
-#
-# ### changelog ###
-#
-# * version 0.1 :
-# - first release
-#
-# =============================================================================
-
-import weechat, os, popen2
-
-SHELL_CMD="shell"
-SHELL_PREFIX="[shell] "
-
-weechat.register ("Shell", "0.1", "", "Running shell commands in WeeChat")
-weechat.add_command_handler(
- SHELL_CMD,
- "shell",
- "Running shell commands in WeeChat",
- "[-o] <command line>",
- " -o : print output on current server/channel\n"
- "<command line> : shell command or builtin like cd, getenv, setenv, unsetenv",
- "-o|cd|getenv|setenv|unsetenv cd|getenv|setenv|unsetenv"
- )
-
-def shell_exec(command):
- proc = popen2.Popen3(command, True)
- status = proc.wait()
- results = []
- if status == 0:
- results = proc.fromchild.readlines()
- else:
- results = proc.childerr.readlines()
- return status, results
-
-def shell_output(command, inchan):
- status, results = shell_exec(command)
- if status == 0:
- for line in results:
- if inchan:
- weechat.command(line.rstrip('\n'))
- else:
- weechat.prnt(line.rstrip('\n'))
- else:
- weechat.prnt("%san error occured while running command `%s'" % (SHELL_PREFIX, command))
- for line in results:
- weechat.prnt(line.rstrip('\n'))
-
-
-def shell_chdir(directory):
- if directory == "":
- if os.environ.has_key('HOME'):
- directory = os.environ['HOME']
- try:
- os.chdir(directory)
- except:
- weechat.prnt("%san error occured while running command `cd %s'" % (SHELL_PREFIX, directory))
- else:
- pass
-
-def shell_getenv(var, inchan):
- var = var.strip()
- if var == "":
- weechat.prnt("%swrong syntax, try 'getenv VAR'" % (SHELL_PREFIX))
- return
-
- value = os.getenv(var)
- if value == None:
- weechat.prnt("%s$%s is not set" % (SHELL_PREFIX, var))
- else:
- if inchan:
- weechat.command("$%s=%s" % (var, os.getenv(var)))
- else:
- weechat.prnt("%s$%s=%s" % (SHELL_PREFIX, var, os.getenv(var)))
-
-def shell_setenv(expr, inchan):
- expr = expr.strip()
- lexpr = expr.split('=')
-
- if (len(lexpr) < 2):
- weechat.prnt("%swrong syntax, try 'setenv VAR=VALUE'" % (SHELL_PREFIX))
- return
-
- os.environ[lexpr[0].strip()] = "=".join(lexpr[1:])
- if not inchan:
- weechat.prnt("%s$%s is now set to '%s'" % (SHELL_PREFIX, lexpr[0], "=".join(lexpr[1:])))
-
-def shell_unsetenv(var, inchan):
- var = var.strip()
- if var == "":
- weechat.prnt("%swrong syntax, try 'unsetenv VAR'" % (SHELL_PREFIX))
- return
-
- if os.environ.has_key(var):
- del os.environ[var]
- weechat.prnt("%s$%s is now unset" % (SHELL_PREFIX, var))
- else:
- weechat.prnt("%s$%s is not set" % (SHELL_PREFIX, var))
-
-def shell(server, args):
- largs = args.split(" ")
-
- #strip spaces
- while '' in largs:
- largs.remove('')
- while ' ' in largs:
- largs.remove(' ')
-
- if len(largs) == 0:
- weechat.command("/help %s" % SHELL_CMD)
- else:
- inchan = False
- if largs[0] == '-o':
- inchan = True
- largs = largs[1:]
-
- if largs[0] == 'cd':
- shell_chdir(" ".join(largs[1:]), inchan)
- elif largs[0] == 'getenv':
- shell_getenv (" ".join(largs[1:]), inchan)
- elif largs[0] == 'setenv':
- shell_setenv (" ".join(largs[1:]), inchan)
- elif largs[0] == 'unsetenv':
- shell_unsetenv (" ".join(largs[1:]), inchan)
- else:
- shell_output(" ".join(largs), inchan)
-
- return weechat.PLUGIN_RC_OK