Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import time
- import logging
- import platform
- import socket
- import subprocess
- from logging.handlers import TimedRotatingFileHandler
- LOG_FILENAME = '/home/john/wolkodi.log'
- UDP_PORT = 1222
- def config_log(log_filename):
- logger = logging.getLogger(__name__)
- logger.setLevel(logging.INFO)
- handler = TimedRotatingFileHandler(log_filename, when="d", interval=30, backupCount=5)
- handler.setLevel(logging.INFO)
- formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
- handler.setFormatter(formatter)
- logger.addHandler(handler)
- return logger
- def main():
- logger.info("I'm binding to port " + str(UDP_PORT));
- try:
- sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- except Exception as exc:
- print("Couldn't make the socket: {0}".format(exc));
- try:
- sock.bind(("0.0.0.0", UDP_PORT))
- except:
- print("Couldn't bind to the port.");
- while True:
- data, addr = sock.recvfrom(512) # buffer size is 512 bytes
- logger.info("UDP package from IP '%s'", addr[0])
- sock.recv(1024*128)
- distro, version,_ = platform.linux_distribution()
- logger.info("I'm a " + distro.lower() + " distribution.");
- print(distro.lower());
- if distro.lower() == 'arch':
- p = subprocess.Popen(["systemctl", "--user", "status", "kodi"],
- stdout=subprocess.PIPE,universal_newline=True)
- out, err = p.communicate()
- if "Active: active (running)" in out:
- logger.info("kodi is already running. Nothing to do")
- else:
- logger.info("Starting kodi (Arch)...")
- subprocess.Popen(['systemctl','start','kodi'])
- logger.info("kodi has been started :-)")
- elif distro.lower() == 'debian' or distro.lower() == 'ubuntu':
- logger.info("I'm a debian-based OS.");
- p = subprocess.Popen(["ps", "aux"],
- stdout=subprocess.PIPE,universal_newlines=True)
- out, err = p.communicate()
- if "kodi.bin" in out:
- logger.info("kodi is already running. Nothing to do")
- else:
- logger.info("Starting kodi (Debian)...")
- with subprocess.Popen(["/usr/local/bin/kodi"],
- stdout=subprocess.PIPE) as p:
- logger.info(p.pid);
- logger.info("kodi has been started :-)")
- if __name__ == "__main__":
- try:
- logger = config_log(LOG_FILENAME)
- main()
- except Exception as e:
- logger.error(e)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement