/usr/bin/music-librarian is in musiclibrarian 1.6-2.2.
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 | #! /usr/bin/python
#
# Copyright (C) 2003 Daniel Burrows <dburrows@debian.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import pygtk
pygtk.require('2.0')
import gtk
from musiclibrarian import cache
from musiclibrarian import config
from musiclibrarian import filestore
from musiclibrarian import libraryview
from musiclibrarian import plugins
import os
import sys
gtk.threads_init()
gtk.threads_enter()
plugins.load_all_plugins()
if len(sys.argv)>=2:
library_locations=sys.argv[1:]
else:
default_library=config.get_option('General', 'DefaultLibrary')
if default_library == None:
library_locations=None
else:
library_locations=(default_library,)
if os.access(os.path.join(sys.path[0], 'musiclibrarian.glade'), os.R_OK):
glade_location=os.path.join(sys.path[0], 'musiclibrarian.glade')
else:
glade_location=os.path.join(sys.prefix, 'share', 'musiclibrarian', 'musiclibrarian.glade')
# Create a global cache; should this be done elsewhere..?
mycache=cache.Cache(os.path.expanduser('~/.musiclibrarian/cache'))
mystore=filestore.FileStore(mycache)
gui=libraryview.MusicLibraryView(mystore, glade_location)
gui.main_widget.show_all()
def boot():
# Avoid deadlock: the stupid gdk lock is held by normal callbacks,
# but not by idle callbacks. Calling gtk.main_iteration_do hangs
# if we don't own the gdk lock, so it's necessary to take the lock
# here so we have a consistent environment for the rest of the
# code.
gtk.threads_enter()
try:
if library_locations <> None:
gui.open_library(library_locations)
finally:
gtk.threads_leave()
return gtk.FALSE
import gobject
gobject.idle_add(boot)
gtk.main()
gtk.threads_leave()
|