2018-10-03 18:53:22 +08:00
|
|
|
import subprocess as sp
|
|
|
|
import threading
|
|
|
|
import time
|
2018-09-12 10:32:09 +08:00
|
|
|
import os
|
2018-10-03 18:53:22 +08:00
|
|
|
import sys
|
|
|
|
import getopt
|
|
|
|
|
2018-10-17 09:15:42 +08:00
|
|
|
config_dir = os.path.join(os.path.dirname(__file__), 'data/')
|
|
|
|
no_update = False
|
|
|
|
|
2018-10-03 18:53:22 +08:00
|
|
|
arguments = []
|
|
|
|
try:
|
|
|
|
opts, args = getopt.getopt(sys.argv[1:],"h:",["no-update", "config="])
|
|
|
|
except getopt.GetoptError:
|
2018-10-05 02:16:49 +08:00
|
|
|
print 'bazarr.py -h --no-update --config <config_directory>'
|
2018-10-03 18:53:22 +08:00
|
|
|
sys.exit(2)
|
|
|
|
for opt, arg in opts:
|
|
|
|
arguments.append(opt)
|
2018-10-17 09:55:30 +08:00
|
|
|
if arg != '':
|
|
|
|
arguments.append(arg)
|
|
|
|
|
2018-10-17 09:15:42 +08:00
|
|
|
if opt == '-h':
|
|
|
|
print 'bazarr.py -h --no-update --config <config_directory>'
|
|
|
|
sys.exit()
|
|
|
|
elif opt in ("--no-update"):
|
|
|
|
no_update = True
|
|
|
|
elif opt in ("--config"):
|
|
|
|
config_dir = arg
|
2018-10-03 18:53:22 +08:00
|
|
|
|
|
|
|
|
2018-10-11 09:23:30 +08:00
|
|
|
dir_name = os.path.dirname(__file__)
|
|
|
|
|
2018-10-03 18:53:22 +08:00
|
|
|
def start_bazarr():
|
2018-10-16 22:58:25 +08:00
|
|
|
script = [sys.executable, "-u", os.path.normcase(os.path.join(globals()['dir_name'], 'bazarr/main.py'))] + globals()['arguments']
|
2018-10-03 18:53:22 +08:00
|
|
|
|
2018-10-14 21:32:16 +08:00
|
|
|
ep = sp.Popen(script, stdout=sp.PIPE, stderr=sp.STDOUT, stdin=sp.PIPE)
|
2018-10-16 20:48:25 +08:00
|
|
|
print "Bazarr starting..."
|
2018-10-14 21:32:16 +08:00
|
|
|
try:
|
|
|
|
for line in iter(ep.stdout.readline, ''):
|
|
|
|
sys.stdout.write(line)
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
pass
|
2018-10-05 02:16:49 +08:00
|
|
|
|
|
|
|
|
2018-10-03 18:53:22 +08:00
|
|
|
if __name__ == '__main__':
|
2018-10-17 09:15:42 +08:00
|
|
|
restartfile = os.path.normcase(os.path.join(config_dir, 'bazarr.restart'))
|
|
|
|
stopfile = os.path.normcase(os.path.join(config_dir, 'bazarr.stop'))
|
2018-09-12 10:32:09 +08:00
|
|
|
|
|
|
|
try:
|
2018-10-03 18:53:22 +08:00
|
|
|
os.remove(restartfile)
|
2018-10-11 09:23:30 +08:00
|
|
|
except:
|
|
|
|
pass
|
|
|
|
|
|
|
|
try:
|
2018-10-03 18:53:22 +08:00
|
|
|
os.remove(stopfile)
|
|
|
|
except:
|
2018-09-12 10:32:09 +08:00
|
|
|
pass
|
|
|
|
|
2018-10-03 18:53:22 +08:00
|
|
|
def daemon():
|
|
|
|
threading.Timer(1.0, daemon).start()
|
|
|
|
if os.path.exists(stopfile):
|
|
|
|
try:
|
|
|
|
os.remove(stopfile)
|
|
|
|
except:
|
2018-10-16 20:48:25 +08:00
|
|
|
print 'Unable to delete stop file.'
|
2018-10-03 18:53:22 +08:00
|
|
|
else:
|
2018-10-16 20:48:25 +08:00
|
|
|
print 'Bazarr exited.'
|
2018-10-03 18:53:22 +08:00
|
|
|
os._exit(0)
|
|
|
|
|
|
|
|
if os.path.exists(restartfile):
|
|
|
|
try:
|
|
|
|
os.remove(restartfile)
|
|
|
|
except:
|
2018-10-16 20:48:25 +08:00
|
|
|
print 'Unable to delete restart file.'
|
2018-10-03 18:53:22 +08:00
|
|
|
else:
|
|
|
|
start_bazarr()
|
2018-09-13 19:28:15 +08:00
|
|
|
|
|
|
|
|
2018-10-03 18:53:22 +08:00
|
|
|
daemon()
|
2018-09-13 11:25:12 +08:00
|
|
|
|
2018-10-03 18:53:22 +08:00
|
|
|
start_bazarr()
|
2018-09-13 11:25:12 +08:00
|
|
|
|
2018-10-11 09:23:30 +08:00
|
|
|
|
2018-10-03 18:53:22 +08:00
|
|
|
# Keep the script running forever.
|
|
|
|
while True:
|
|
|
|
time.sleep(0.001)
|