mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-17 01:22:19 +03:00
Delay logfile monitoring until it is required.
So that command-line app doesn't start monitoring for no purpose.
This commit is contained in:
parent
cd2fc824f0
commit
3534e89840
41
monitor.py
41
monitor.py
@ -79,21 +79,10 @@ class EDLogs(FileSystemEventHandler):
|
||||
self.logfile = None
|
||||
self.logging_enabled = self._logging_enabled
|
||||
self._restart_required = False
|
||||
self.observer = None
|
||||
self.thread = None
|
||||
self.last_event = None # for communicating the Jump event
|
||||
|
||||
if self.logdir:
|
||||
# Set up a watchog observer. This is low overhead so is left running irrespective of whether monitoring is desired.
|
||||
observer = Observer()
|
||||
observer.daemon = True
|
||||
observer.schedule(self, self.logdir)
|
||||
observer.start()
|
||||
atexit.register(observer.stop)
|
||||
|
||||
# Latest pre-existing logfile - e.g. if E:D is already running. Assumes logs sort alphabetically.
|
||||
logfiles = sorted([x for x in listdir(self.logdir) if x.startswith('netLog.')])
|
||||
self.logfile = logfiles and join(self.logdir, logfiles[-1]) or None
|
||||
|
||||
def enable_logging(self):
|
||||
if self.logging_enabled():
|
||||
return True
|
||||
@ -161,6 +150,25 @@ class EDLogs(FileSystemEventHandler):
|
||||
return False
|
||||
if self.running():
|
||||
return True
|
||||
|
||||
# Set up a watchog observer. This is low overhead so is left running irrespective of whether monitoring is desired.
|
||||
if not self.observer:
|
||||
if __debug__:
|
||||
print 'Monitoring "%s"' % self.logdir
|
||||
elif getattr(sys, 'frozen', False):
|
||||
sys.stderr.write('Monitoring "%s"\n' % self.logdir)
|
||||
sys.stderr.flush() # Required for line to show up immediately on Windows
|
||||
|
||||
self.observer = Observer()
|
||||
self.observer.daemon = True
|
||||
self.observer.schedule(self, self.logdir)
|
||||
self.observer.start()
|
||||
atexit.register(self.observer.stop)
|
||||
|
||||
# Latest pre-existing logfile - e.g. if E:D is already running. Assumes logs sort alphabetically.
|
||||
logfiles = sorted([x for x in listdir(self.logdir) if x.startswith('netLog.')])
|
||||
self.logfile = logfiles and join(self.logdir, logfiles[-1]) or None
|
||||
|
||||
self.thread = threading.Thread(target = self.worker, name = 'netLog worker')
|
||||
self.thread.daemon = True
|
||||
self.thread.start()
|
||||
@ -247,10 +255,6 @@ class EDLogs(FileSystemEventHandler):
|
||||
suffix = join('Frontier Developments', 'Elite Dangerous')
|
||||
paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, True)
|
||||
if len(paths) and isdir(paths[0]) and isfile(join(paths[0], suffix, 'AppNetCfg.xml')) and isdir(join(paths[0], suffix, 'Logs')):
|
||||
if __debug__:
|
||||
print 'Monitoring "%s"' % join(paths[0], suffix, 'Logs')
|
||||
elif getattr(sys, 'frozen', False):
|
||||
sys.stderr.write('Monitoring "%s"\n' % join(paths[0], suffix, 'Logs'))
|
||||
return join(paths[0], suffix, 'Logs')
|
||||
else:
|
||||
return None
|
||||
@ -340,11 +344,6 @@ class EDLogs(FileSystemEventHandler):
|
||||
if isdir(base):
|
||||
for d in listdir(base):
|
||||
if d.startswith(game) and isfile(join(base, d, 'AppConfig.xml')) and isdir(join(base, d, 'Logs')):
|
||||
if __debug__:
|
||||
print 'Monitoring "%s"' % join(base, d, 'Logs')
|
||||
elif getattr(sys, 'frozen', False):
|
||||
sys.stderr.write('Monitoring "%s"\n' % join(base, d, 'Logs'))
|
||||
sys.stderr.flush()
|
||||
return join(base, d, 'Logs')
|
||||
|
||||
return None
|
||||
|
Loading…
x
Reference in New Issue
Block a user