morphbr@718: #!/usr/bin/env python morphbr@718: morphbr@718: __author__ = "Artur Duque de Souza" morphbr@718: __author_email__ = "artur.souza@indt.org.br" morphbr@718: __license__ = "GPL" morphbr@718: __version__ = "0.3" morphbr@718: __thanks__ = "Gustavo Sverzut Barbieri" renatofilho@815: __GMS_DATA_DIR__ = "/usr/share/gms/" morphbr@718: morphbr@718: import sys morphbr@718: import os renatofilho@800: import mimetypes morphbr@718: import logging as log renatofilho@815: renatofilho@815: if os.path.exists (__GMS_DATA_DIR__): renatofilho@815: sys.path.append(__GMS_DATA_DIR__) renatofilho@815: morphbr@718: from lib.server import serve_forever, load_plugins_transcoders renatofilho@815: from lib.utils import config morphbr@718: renatofilho@800: mimetypes.init() morphbr@718: log_level = log.INFO morphbr@718: for p in sys.argv[1:]: morphbr@718: if p == "-v" or p == "--verbose": morphbr@718: log_level -= 10 morphbr@718: morphbr@718: log.basicConfig(level=log_level, morphbr@718: format=("### %(asctime)s %(name)-18s \t%(levelname)-8s " morphbr@718: "\t%(message)s"), morphbr@718: datefmt="%Y-%m-%d %H:%M:%S") morphbr@718: renatofilho@815: if config.get_transcoded_location () is None: renatofilho@815: print "Gms not configured" renatofilho@815: exit (0) morphbr@723: renatofilho@815: if not os.path.exists(config.get_transcoded_location()): renatofilho@815: os.mkdir(config.get_transcoded_location()) renatofilho@815: renatofilho@815: renatofilho@815: if "-d" in sys.argv: renatofilho@815: #run with deamon renatofilho@815: try: renatofilho@815: pid = os.fork() renatofilho@815: if pid > 0: renatofilho@815: sys.exit(0) renatofilho@815: except OSError, e: renatofilho@815: print >>sys.stderr, "Fail to start deamon: %d (%s)" % (e.errno, e.strerror) renatofilho@815: sys.exit(1) renatofilho@815: renatofilho@815: os.chdir("/") renatofilho@815: os.setsid() renatofilho@815: os.umask(0) renatofilho@815: renatofilho@815: try: renatofilho@815: pid = os.fork() renatofilho@815: if pid > 0: renatofilho@815: fp = open ("/var/run/gms.pid", "w") renatofilho@815: fp.write ("%d" % pid) renatofilho@815: fp.close () renatofilho@815: sys.exit(0) renatofilho@815: except OSError, e: renatofilho@815: print >>sys.stderr, "Fail to start deamon: %d (%s)" % (e.errno, e.strerror) renatofilho@815: sys.exit(1) renatofilho@815: renatofilho@815: # main deamon renatofilho@815: pd = os.path.join(__GMS_DATA_DIR__, "plugins", "transcoders") renatofilho@815: if os.path.exists (pd): renatofilho@815: load_plugins_transcoders(pd) renatofilho@815: renatofilho@815: pd = os.path.join("plugins", "transcoders"); renatofilho@815: if os.path.exists (pd): renatofilho@815: load_plugins_transcoders(pd) renatofilho@815: morphbr@718: serve_forever()