Updated the zukebox-playlist-scpd.xml to acess the method GetPlaylist
[zukebox] / zukebox_server / src / bin / zukebox-server
1 #!/usr/bin/env python
2
3 import os
4 import sys
5 import socket
6 import brisa
7 # setting debug mode
8 brisa.__enable_events_logging__ = True
9 from brisa.core import config
10 from brisa.core import log
11 from brisa.core.system import daemonize
12 from brisa.utils import options
13
14 import zukebox_server
15 from zukebox_server.system import linux
16 from zukebox_server.server.zb_server import ZukeBoxServer
17
18 pjoin = os.path.join
19 pexists = os.path.exists
20
21 home_path = os.path.expanduser("~")
22 zb_base_path = pjoin(home_path, ".zukebox")
23 zb_database_path = pjoin(zb_base_path, "audio_library.db")
24 zb_module_path = zukebox_server.__path__[0]
25 zb_plugins_path = pjoin(zb_module_path, "plugins")
26 zb_services_path = pjoin(zb_module_path, "services")
27 zb_xml_path = pjoin(zb_module_path, "xml_descriptions")
28
29 plugin_section = "zukebox_server_plugin-audio-library"
30
31 def config_dot_zb():
32     log.info("creating the dot zukebox path")
33     version = pjoin(zb_base_path, "version")
34     version_str = "0.1"
35
36     def init_dot_zb():
37         os.makedirs(zb_base_path, 0700)
38         open(version, "w").write(version_str)
39
40     if not pexists(zb_base_path):
41         init_dot_zb()
42         return
43
44 def setup_zukebox():
45     log.info("setting the zukebox variables in config.manager")
46     # ZBox Server
47     config.manager.set_parameter("zukebox_server", "name", "ZukeBox Server")
48     config.manager.set_parameter("zukebox_server", "owner", "zukebox-server")
49     config.manager.set_parameter("zukebox_server", "module_path", zb_module_path)
50     config.manager.set_parameter("zukebox_server", "plugins", zb_plugins_path)
51     config.manager.set_parameter("zukebox_server", "services", zb_services_path)
52     config.manager.set_parameter("zukebox_server", "xml_path", zb_xml_path)
53
54     # ZBox Plugins
55     config.manager.set_parameter(plugin_section, "owner",
56             "zukebox_server_plugin-audio_library")
57     config.manager.set_parameter(plugin_section, "database_location",
58             zb_database_path)
59     config.manager.set_parameter(plugin_section, "enable", True)
60
61     sp = linux.SystemProperties()
62     audio_folder = sp.DEFAULT_DIR_AUDIO
63
64     config.manager.set_parameter(plugin_section, "audio_folder", audio_folder)
65     config.manager.save()
66
67
68 def init_server():
69     log.info("ZukeBox Server starting....")
70     listen_url, daemon = options.parse_args("ZukeBox Server")
71     print listen_url, daemon
72     if daemon:
73         daemonize()
74     server_name = config.get_parameter("zukebox_server", "name")
75     zb_srv = ZukeBoxServer(server_name, listen_url)
76     zb_srv.start()
77
78 def main():
79     config_dot_zb()
80     setup_zukebox()
81     init_server()
82
83 if __name__ == '__main__':
84     main()