moved wrapper to feature branch (*sigh*, again)

This commit is contained in:
neersighted 2012-03-01 00:38:37 -08:00
parent 9600ae0e57
commit 3be83b7d0b
2 changed files with 3 additions and 196 deletions

View file

@ -49,13 +49,13 @@ In addition, for `.whois` to work optimally, you must have `whois` installed. Ag
If you are a user of another Linux disto, use your package manager to install the dependencies, or, for other operating systems, use **Google** to locate source packages you can install.
Once you have installed the required dependencies, run the wrapper:
Once you have installed the required dependencies, run the bot:
`./cloudbot`
`./bot.py`
It will generate a default config for you. Once you have edited the config, run it again with:
`./cloudbot`
`./bot.py`
and it will connect to any server(s) you have added to the config. (Config docs at the [wiki](http://git.io/cloudbotconfig))

193
cloudbot
View file

@ -1,193 +0,0 @@
#!/usr/bin/env python
# Bot Wrapper by neersighted
import sys
import os
import subprocess
import re
import json
if os.path.isfile("./config"):
try:
config = json.load(open('config'))
command = ":"
except ValueError, e:
print 'error: malformed config', e
else:
config = False
command = "python bot.py"
nocol = "\033[1;m"
red = "\033[1;31m"
green = "\033[1;32m"
usage = "usage: ./cloudbot {start|stop|restart|status}"
quit = "Goodbye! Thanks for using CloudBot!"
pwd = os.getcwd()
clearlog1 = ": > ./bot.log && "
clearlog2 = ": > ./bot.log"
daemoncheck = subprocess.check_output("locate /usr/bin/daemon", shell=True)
daemon = re.match(r'^/usr/bin/daemon$', daemoncheck)
screencheck = subprocess.check_output("locate /usr/bin/screen", shell=True)
screen = re.match(r'^/usr/bin/screen$', screencheck)
backend = config.get("wrapper", {}).get("backend", "daemon")
try:
runningcheck = subprocess.check_output("ps ax|grep cloudbot|"\
"grep -v grep|grep -v ./cloudbot", shell=True)
running = re.match(r'^[1-9]+', runningcheck)
except (subprocess.CalledProcessError):
running = False
error1 = red + "Neither screen nor daemon is installed! "\
"This program cannot run! {ERROR 1}" + nocol
error2 = red + "Could not find bot.py! Are you in the wrong folder? "\
"(" + pwd + ") {ERROR 2}" + nocol
error3 = red + "Invalid choice, exiting! {ERROR 3}" + nocol
error4 = red + "Program killed by user! {ERROR 4}" + nocol
error5 = red + "Invalid backend in config! {ERROR 5}" + nocol
error6 = red + "Author error! We be derpin'! {ERROR 6}" + nocol
start = "echo " + "'" + error1 + "'"
stop = "echo " + "'" + error1 + "'"
restart = "echo " + "'" + error1 + "'"
pid = "echo 'Cannot get pid'"
if daemon:
if backend == "daemon":
start = "daemon -n cloudbot -O " + pwd + \
"/bot.log -r python " + pwd + "/bot.py"
stop = clearlog1 + "daemon -n cloudbot --stop"
restart = clearlog1 + "daemon -n cloudbot --restart"
pid = "pidof /usr/bin/daemon"
elif backend == "screen":
start = "screen -S cloudbot -dm python" + pwd +\
"/bot.py >>" + pwd + "/bot.log 2>&1"
stop = clearlog1 + "kill `pidof /usr/bin/screen`"
restart = clearlog1 + "daemon -n cloudbot --restart"
pid = "pidof /usr/bin/screen"
else:
print error5
elif screen:
if backend == "daemon":
start = "daemon -n cloudbot -O " + pwd + \
"/bot.log -r python " + pwd + "/bot.py"
stop = clearlog1 + "daemon -n cloudbot --stop"
restart = stop + " && " + start
pid = "pidof /usr/bin/daemon"
elif backend == "screen":
start = "screen -S cloudbot -dm python" + pwd +\
"/bot.py >>" + pwd + "/bot.log 2>&1"
stop = clearlog1 + "kill `pidof /usr/bin/screen`"
restart = stop + " && " + start
pid = "pidof /usr/bin/screen"
else:
print error5
else:
command = command
print " ______ __ ______ __ __ "\
" _______ .______ ______ .___________."
print " / || | / __ \ | | | | "\
"| \ | _ \ / __ \ | |"
print "| ,----'| | | | | | | | | | "\
"| .--. || |_) | | | | | `---| |----`"
print "| | | | | | | | | | | | "\
"| | | || _ < | | | | | | "
print "| `----.| `----.| `--' | | `--' | "\
"| '--' || |_) | | `--' | | | "
print " \______||_______| \______/ \______/ "\
"|_______/ |______/ \______/ |__| "
print "http://git.io/cloudbot "\
" by lukeroge"
try:
if running:
if (len(sys.argv) > 1):
if (sys.argv[1] == 'start'):
print "Bot is alread running, cannot start!"
elif (sys.argv[1] == 'stop'):
command = stop
print "Stopping... (" + backend + ")"
elif (sys.argv[1] == 'restart'):
command = restart
print "Restarting... (" + backend + ")"
elif (sys.argv[1] == 'status'):
command = pid
print green + "Bot is running! " + nocol
elif (sys.argv[1] == 'clear'):
command = clearlog2
else:
command = command
print usage
exit
else:
print "{1|start} {2|stop} {3|restart} {4|status} {5|exit}"
read = int(raw_input('Please choose a option: '))
if read == 1:
print "Bot is alread running, cannot start!"
elif read == 2:
command = stop
print "Stopping... (" + backend + ")"
elif read == 3:
command = restart
print "Restarting... (" + backend + ")"
elif read == 4:
command = pid
print green + "Bot is running! " + nocol
elif read == 5:
print quit
else:
print error3
else:
if (len(sys.argv) > 1):
if (sys.argv[1] == 'start'):
command = start
print "Starting... (" + backend + ")"
elif (sys.argv[1] == 'stop'):
print "Bot is not running, cannot stop!"
elif (sys.argv[1] == 'restart'):
print "Bot is not running, cannot restart!"
elif (sys.argv[1] == 'status'):
print red + "Bot is not running!" + nocol
elif (sys.argv[1] == 'clear'):
command = clearlog2
else:
command = command
print usage
exit
else:
print "{1|start} {2|stop} {3|restart} {4|status} {5|exit}"
read = int(raw_input('Please choose a option: '))
if read == 1:
command = start
print "Starting... (" + backend + ")"
elif read == 2:
print "Bot is not running, cannot stop!"
elif read == 3:
command = restart
elif read == 4:
print red + "Bot is not running, cannot restart!" + nocol
elif read == 5:
print quit
else:
print error3
exit
except (TypeError, ValueError), e:
print error3
exit
except (KeyboardInterrupt), e:
print error4
exit
except (NameError, SyntaxError), e:
print error6
exit
if os.path.isfile("./bot.py"):
command = command
else:
print error2
exit
subprocess.call(command, shell=True)
print quit
exit