/usr/bin/frameworkd is in fso-frameworkd 0.10.1-3.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #!/usr/bin/python
"""
The Open Device Daemon - Python Implementation
(C) 2008-2010 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
(C) 2008 Openmoko, Inc.
GPLv2 or later
"""
__version__ = "1.3.1"
import sys, os
from optparse import OptionParser
#----------------------------------------------------------------------------#
class TheOptionParser( OptionParser ):
#----------------------------------------------------------------------------#
def __init__( self ):
OptionParser.__init__( self )
self.set_defaults( overrides=[] )
self.add_option( "-o", "--override",
dest = "overrides",
help = "override configuration",
metavar = "SECTION.KEY=VALUE",
action = "append"
)
self.add_option( "-s", "--subsystems",
metavar = "system1,system2,system3,...",
dest = "subsystems",
default = "",
help = "launch only the following subsystems (default=all)",
action = "store",
)
self.add_option( "-n", "--noframework",
dest = "noframework",
help = "do not launch the framework subsystem (use for multiple framework processes)",
action = "store_true",
)
self.add_option( "-d", "--daemonize",
dest = "daemonize",
help = "launch as daemon",
action = "store_true",
)
self.add_option( "-p", "--profile",
metavar = "<filename>",
dest = "profile",
help = "launch in profile mode (needs python-profile)",
action = "store",
)
self.add_option( "-l", "--loophole",
dest = "loophole",
help = "create loophole listening on port 8822 (needs python-netserver)",
action = "store_true",
)
#----------------------------------------------------------------------------#
if __name__ == "__main__":
#----------------------------------------------------------------------------#
options = TheOptionParser()
options.parse_args( sys.argv )
if options.values.profile:
try:
import cProfile
except ImportError:
print "Can't import cProfile; python-profile not installed? Can't profile."
sys.exit( -1 )
else:
print "WARNING: profiling mode. profiling to %s" % options.values.profile
try:
from framework import controller
except ImportError:
sys.path.append( os.path.dirname( os.path.abspath( os.path.curdir ) ) )
from framework import controller
c = controller.Controller( "%s/subsystems" % os.path.dirname( controller.__file__ ), options )
if options.values.loophole:
try:
from patterns import loophole
except ImportError, e:
print "Can't launch loophole: %s", e
else:
l = loophole.LoopHole( dict( controller=c ) )
print "LoopHole listening on port 8822"
try:
if options.values.profile:
p = cProfile.Profile()
p.run( "c.launch()" )
else:
c.launch()
except KeyboardInterrupt:
print >>sys.stderr, "ctrl-c: exiting."
c.shutdown()
del c
if options.values.profile:
import lsprofcalltree
k = lsprofcalltree.KCacheGrind(p)
data = open( options.values.profile, "w" )
k.output( data )
data.close()
|