maindaemon.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import sys
  2. import os
  3. import configparser
  4. from yjdaemon.Database import Database
  5. from yjdaemon.libraryscanner import LibraryScanner
  6. from yjdaemon.yjmpd import YJMPD
  7. from yjdaemon.HTTPServer import HTTPServerThread
  8. debug = False
  9. config = configparser.ConfigParser()
  10. try:
  11. config.read("../config.cfg")
  12. HTTP_PORT = int(config.get("HTTP", "port"))
  13. DAEMON_PORT = int(config.get("Daemon", "port"))
  14. MUSIC_DIR = str(config.get("Library", "jancodir"))
  15. DB_USERNAME = config.get("Database", "username")
  16. DB_PASSWORD = config.get("Database", "password")
  17. DB_HOST = config.get("Database", "host")
  18. DB_DATABASE = config.get("Database", "database")
  19. DB_PORT = config.getint("Database", "port")
  20. except Exception as e:
  21. print(e.with_traceback())
  22. sys.exit(1)
  23. class MainDaemon(YJMPD):
  24. def run(self):
  25. HTTP_thread = HTTPServerThread(HTTP_PORT)
  26. HTTP_thread.start()
  27. db = Database(DB_USERNAME, DB_PASSWORD, DB_HOST, DB_PORT, DB_DATABASE)
  28. LibraryScanner(db, MUSIC_DIR)
  29. if __name__ == "__main__":
  30. username = os.getenv('USER')
  31. if None == username:
  32. dir = "/tmp/.pydaemon.pid"
  33. else:
  34. dir = "/home/" + username + "/.pydaemon.pid"
  35. daemon = MainDaemon(dir, MUSIC_DIR)
  36. if len(sys.argv) == 2:
  37. if 'start' == sys.argv[1]:
  38. daemon.start()
  39. elif 'stop' == sys.argv[1]:
  40. daemon.stop()
  41. elif 'restart' == sys.argv[1]:
  42. daemon.restart()
  43. elif 'status' == sys.argv[1]:
  44. daemon.status()
  45. else:
  46. print("Unknown command")
  47. sys.exit(2)
  48. sys.exit(0)
  49. else:
  50. print("usage: %s start|stop|status|restart" % sys.argv[0])
  51. sys.exit(2)