This repository has been archived on 2023-04-13. You can view files and clone it, but cannot push or open issues or pull requests.
CloudBot/cloudbot
2012-02-29 09:44:05 -08:00

93 lines
2.7 KiB
Python
Executable file

#!/usr/bin/env python
# Bot Wrapper by neersighted
import sys
import os
import subprocess
import re
usage = "usage: ./cloudbot {start|stop|restart|status}"
pwd = os.getcwd()
clearlog = ": >./bot.log && "
command = ":"
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)
daemon = re.match(r'^/usr/bin/screen$', screencheck)
error1 = "Neither screen nor daemon is installed! "\
"This script cannot run! {ERROR 1}"
error2 = "Could not find bot.py! Are you in the wrong folder? "\
(" + pwd + ") {ERROR 2}"
error3 = "Invalid choice, exiting! {ERROR 3}"
start = "echo " + error1
stop = "echo " + error1
restart = "echo " + error1
status = "ps aux|grep cloudbot"
if daemon:
start = "daemon -n cloudbot -O " + pwd + \
"/bot.log -r python " + pwd + "/bot.py"
stop = clearlog + "daemon -n cloudbot --stop"
restart = stop + " && " + start
elif screen:
start = "screen -S cloudbot -dm python" + pwd +\
"/bot.py >>" + pwd + "/bot.log 2>&1"
stop = clearlog + "kill `pidof /usr/bin/screen`"
restart = stop + " && " + start
else:
print error1
print " ______ __ ______ __ __ "\
" _______ .______ ______ .___________."
print " / || | / __ \ | | | | "\
"| \ | _ \ / __ \ | |"
print "| ,----'| | | | | | | | | | "\
"| .--. || |_) | | | | | `---| |----`"
print "| | | | | | | | | | | | "\
"| | | || _ < | | | | | | "
print "| `----.| `----.| `--' | | `--' | "\
"| '--' || |_) | | `--' | | | "
print " \______||_______| \______/ \______/ "\
"|_______/ |______/ \______/ |__| "
print "http://git.io/cloudbot "\
" by lukeroge"
if (len(sys.argv) > 1):
if (sys.argv[1] == 'start'):
command = start
elif (sys.argv[1] == 'stop'):
command = stop
elif (sys.argv[1] == 'restart'):
command = restart
elif (sys.argv[1] == 'status'):
command = status
else:
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
elif read == 2:
command = stop
elif read == 3:
command = restart
elif read == 4:
command = status
elif read == 5:
exit
else:
print error3
exit
if os.path.isfile("./bot.py"):
command = command
else:
print error2
exit
subprocess.call(command, shell=True)
exit