disambiguate types returned by get_fd_or_server

This commit is contained in:
ThomasV 2016-02-01 13:10:01 +01:00
parent 690c862923
commit ddc1869551
2 changed files with 6 additions and 8 deletions

View File

@ -313,22 +313,21 @@ if __name__ == '__main__':
sys.exit(0) sys.exit(0)
if cmdname == 'gui': if cmdname == 'gui':
fd = daemon.get_fd_or_server(config) fd, server = daemon.get_fd_or_server(config)
if isinstance(fd, int): if fd is not None:
d = daemon.Daemon(config, fd) d = daemon.Daemon(config, fd)
d.start() d.start()
d.init_gui(config, plugins) d.init_gui(config, plugins)
sys.exit(0) sys.exit(0)
else: else:
server = fd
result = server.gui(config_options) result = server.gui(config_options)
elif cmdname == 'daemon': elif cmdname == 'daemon':
subcommand = config.get('subcommand') subcommand = config.get('subcommand')
assert subcommand in ['start', 'stop', 'status'] assert subcommand in ['start', 'stop', 'status']
if subcommand == 'start': if subcommand == 'start':
fd = daemon.get_fd_or_server(config) fd, server = daemon.get_fd_or_server(config)
if isinstance(fd, int): if fd is not None:
pid = os.fork() pid = os.fork()
if pid: if pid:
print_stderr("starting daemon (PID %d)" % pid) print_stderr("starting daemon (PID %d)" % pid)
@ -343,7 +342,6 @@ if __name__ == '__main__':
d.join() d.join()
sys.exit(0) sys.exit(0)
else: else:
server = fd
result = server.daemon(config_options) result = server.daemon(config_options)
else: else:
server = daemon.get_server(config) server = daemon.get_server(config)

View File

@ -48,12 +48,12 @@ def get_fd_or_server(config):
lockfile = get_lockfile(config) lockfile = get_lockfile(config)
while True: while True:
try: try:
return os.open(lockfile, os.O_CREAT | os.O_EXCL | os.O_WRONLY) return os.open(lockfile, os.O_CREAT | os.O_EXCL | os.O_WRONLY), None
except OSError: except OSError:
pass pass
server = get_server(config) server = get_server(config)
if server is not None: if server is not None:
return server return None, server
# Couldn't connect; remove lockfile and try again. # Couldn't connect; remove lockfile and try again.
remove_lockfile(lockfile) remove_lockfile(lockfile)