| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/usr/bin/python3
- import os
- import errno
- import re
- from commands.CmdExit import CmdExit
- from commands.CmdUpdate import CmdUpdate
- DIR = os.path.dirname(os.path.realpath(__file__))
- CONFIG = {
- "PipePath": os.path.join(DIR, "../data/cmd-pipe"),
- "CronFragment": os.path.join(DIR, "../data/cron-fragment.txt"),
- "Running": True,
- }
- # try:
- # os.mkfifo(PIPE)
- # except OSError as oe:
- # if oe.errno != errno.EEXIST:
- # raise
- def execute(command):
- if command == "EXIT":
- global running
- running = False
- elif command == "UPDATE":
- print("Updating...")
- stream = os.popen('crontab -l')
- crontab = stream.read()
- result = crontab
- begin = re.search("\s*#\s*BEGIN\(ALERTS\).*", crontab)
- if begin:
- result = crontab[:begin.span()[1]] + "\n"
- end = re.search("\s*#\s*END\(ALERTS\).*", crontab)
- if end:
- result += "muahahah\ntest"
- result += crontab[end.span()[0]:]
-
- print(result)
- else:
- print("UNKNOWN COMMAND: {0}".format(command))
- def main(config):
- # commandPipe = ''
- # cronFragment = ''
- # try:
- # opts, args = getopt.getopt(argv,"h",["help","pipe=","cron="])
- # except getopt.GetoptError:
- # print 'cron-section-replace --pipe <command-pipe> --cron <cron-fragment>'
- # sys.exit(2)
- # for opt, arg in opts:
- # if opt in ("-h", "--help"):
- # print 'cron-section-replace --pipe <command-pipe> --cron <cron-fragment>'
- # sys.exit()
- # elif opt in ("--pipe"):
- # commandPipe = arg
- # elif opt in ("--cron):
- # cronFragment = arg
-
- # print(commandPipe)
- # print(cronFragment)
- # sys.exit()
- commands = {
- "EXIT": CmdExit(config),
- "UPDATE": CmdUpdate(config)
- }
-
- while config["Running"]:
- print("Waiting for connection...")
- with open(config["PipePath"]) as pipe:
- print("Connection established")
- while True:
- cmd = pipe.read().strip()
- if len(cmd) == 0:
- break
- if cmd in commands:
- commands[cmd].execute()
- else:
- print("UNKNOWN COMMAND: {0}".format(cmd))
- #execute(data.strip())
- if __name__ == "__main__":
- main(CONFIG)
|