1
2
3
4 """
5 Twisted Application Persistence package for the startup of the twisted sparked plugin.
6 """
7
8 import tempfile
9 import dbus.mainloop.glib
10
11 from twisted.python import usage
12
13 from twisted.python import log
14 from twisted.python.filepath import FilePath
15 from twisted.python.logfile import LogFile
16
17 from sparked import launcher, application
18
19
36
37
38
40
41
42 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
43
44
45 if not hasattr(config.module, 'Application'):
46 raise usage.UsageError("Invalid application module: " + config.appName)
47
48
49 s = config.module.Application(config.opts, config.appOpts)
50
51
52 if config.opts['id']:
53 s.id = config.opts['id']
54 else:
55 s.id = config.appName
56
57
58 s.tempPath = application.getTempPath(config.appName, s.id)
59
60
61 s.quitFlag = launcher.QuitFlag(s.tempPath.child("quitflag"))
62
63
64 s.setName(config.appName)
65
66
67 if config.opts['logfile']:
68 logfile = config.opts['logfile']
69 logDir = FilePath(logfile).parent()
70 if not logDir.exists():
71 logDir.createDirectory()
72 else:
73 logfile = 'sparkd.log'
74 logDir = s.tempPath
75 logFile = LogFile(logfile, logDir.path, maxRotatedFiles=9)
76 log.addObserver(log.FileLogObserver(logFile).emit)
77
78 return s
79