--- glipper.old 2009-06-09 11:23:09.000000000 +0200 +++ glipper 2009-06-17 17:36:05.000000000 +0200 @@ -1,4 +1,5 @@ -#!/usr/bin/env python +#!/usr/bin/python -t +#-*- coding:utf-8 -*- # Glipper - Clipboardmanager for GNOME # Copyright (C) 2007 Glipper Team @@ -19,103 +20,137 @@ # Boston, MA 02111-1307, USA. # -import gobject -gobject.threads_init() - -import gtk, gnomeapplet, gnome +import logging +import time import getopt, sys +from datetime import datetime from os.path import * +from os import environ + + +now = datetime.now() +# Beware what and where you log, you might copy a password... +log_file = environ['HOME'] + '/glipper.log' +logging.basicConfig( filename = log_file, level = logging.DEBUG ) + +# See whether we're starting at all... +logging.info( '_________________________ Trying to start glipper... ' + datetime.now().isoformat() ) + +# Doing gnomish imports... +try: + logging.debug( 'Importing gobject... ' + datetime.now().isoformat() ) + import gobject + + logging.debug( 'Initiating threads... ' + datetime.now().isoformat() ) + gobject.threads_init() + + logging.debug( 'Importing gtk, gnomeapplet, gnome... ' + datetime.now().isoformat() ) + import gtk, gnomeapplet, gnome + + logging.debug( 'Imported gnomish stuff...' + datetime.now().isoformat() ) +except StandardError: + logging.warn( "Something gnomish is not ready yet, at " + datetime.now().isoformat() ) + sys.exit() + + +logging.debug( 'Importing glipper, glipper.Applet, glipper.defs... ' + datetime.now().isoformat() ) import glipper, glipper.Applet, glipper.defs sys.path.insert(0, glipper.PLUGINS_DIR) try: - # attempt to set a name for killall - import glipper.osutils - glipper.osutils.set_process_name("glipper") + # attempt to set a name for killall + logging.debug( 'Importing glipper.osutils... ' + datetime.now().isoformat() ) + import glipper.osutils + glipper.osutils.set_process_name("glipper") except: - print "Unable to set processName" + logging.warn( "Unable to set process name at " + datetime.now().isoformat() ) + +logging.debug( 'Importing gettext, locale... ' + datetime.now().isoformat() ) import gettext, locale gettext.bindtextdomain('glipper', abspath(join(glipper.defs.DATA_DIR, "locale"))) if hasattr(gettext, 'bind_textdomain_codeset'): - gettext.bind_textdomain_codeset('glipper','UTF-8') + gettext.bind_textdomain_codeset('glipper','UTF-8') gettext.textdomain('glipper') locale.bindtextdomain('glipper', abspath(join(glipper.defs.DATA_DIR, "locale"))) if hasattr(locale, 'bind_textdomain_codeset'): - locale.bind_textdomain_codeset('glipper','UTF-8') + locale.bind_textdomain_codeset('glipper','UTF-8') locale.textdomain('glipper') def applet_factory(applet, iid): - print 'Starting Glipper instance:', applet, iid - glipper.Applet.Applet(applet) - return True + logging.debug( 'Starting Glipper instance: ' + applet.__str__() + iid.__str__() ) + glipper.Applet.Applet(applet) + return True # Return a standalone window that holds the applet def build_window(): - app = gtk.Window(gtk.WINDOW_TOPLEVEL) - app.set_title("Glipper") - app.connect("destroy", gtk.main_quit) - app.set_property('resizable', False) - - applet = gnomeapplet.Applet() - applet.get_orient = lambda: gnomeapplet.ORIENT_DOWN - applet_factory(applet, None) - applet.reparent(app) - - app.show_all() - - return app - + logging.debug( 'Building application... ' + datetime.now().isoformat() ) + app = gtk.Window(gtk.WINDOW_TOPLEVEL) + app.set_title("Glipper") + app.connect("destroy", gtk.main_quit) + app.set_property('resizable', False) + + applet = gnomeapplet.Applet() + applet.get_orient = lambda: gnomeapplet.ORIENT_DOWN + applet_factory(applet, None) + applet.reparent(app) + + app.show_all() + + return app + def usage(): - print """=== Glipper: Usage + print """=== Glipper: Usage $ glipper [OPTIONS] OPTIONS: - -h, --help Print this help notice. - -w, --window Launch the applet in a standalone window for test purposes (default=no). - """ - sys.exit() - -if __name__ == "__main__": - standalone = False - do_trace = False - - try: - opts, args = getopt.getopt(sys.argv[1:], "hw", ["help", "window"]) - except getopt.GetoptError: - # Unknown args were passed, we fallback to bahave as if - # no options were passed - print "WARNING: Unknown arguments passed, using defaults." - opts = [] - args = sys.argv[1:] - - for o, a in opts: - if o in ("-h", "--help"): - usage() - elif o in ("-w", "--window"): - standalone = True - - print 'Running with options:', { - 'standalone': standalone, - } - - gnome.program_init('glipper', '1.0', properties= { gnome.PARAM_APP_DATADIR : glipper.DATA_DIR }) - - if standalone: - import gnome - gnome.init(glipper.defs.PACKAGE, glipper.defs.VERSION) - build_window() - - gtk.main() - - else: - gnomeapplet.bonobo_factory( - "OAFIID:Glipper_Factory", - gnomeapplet.Applet.__gtype__, - glipper.defs.PACKAGE, - glipper.defs.VERSION, - applet_factory) + -h, --help Print this help notice. + -w, --window Launch the applet in a standalone window for test purposes (default=no). + """ + sys.exit() + +if __name__ == "__main__": + standalone = False + do_trace = False + + try: + opts, args = getopt.getopt(sys.argv[1:], "hw", ["help", "window"]) + except getopt.GetoptError: + # Unknown args were passed, we fallback to bahave as if + # no options were passed + logging.info( "Unknown arguments passed, using defaults." ) + opts = [] + args = sys.argv[1:] + + for o, a in opts: + if o in ("-h", "--help"): + usage() + elif o in ("-w", "--window"): + standalone = True + + logging.debug( + 'Running with options:' + + { 'standalone': standalone }.__str__() + ) + + gnome.program_init('glipper', '1.0', properties= { gnome.PARAM_APP_DATADIR : glipper.DATA_DIR }) + + if standalone: + logging.info( 'Running standalone... ' + datetime.now().isoformat() ) + gnome.init(glipper.defs.PACKAGE, glipper.defs.VERSION) + build_window() + + gtk.main() + + else: + logging.info( 'Running as applet... ' + datetime.now().isoformat() ) + gnomeapplet.bonobo_factory( + "OAFIID:Glipper_Factory", + gnomeapplet.Applet.__gtype__, + glipper.defs.PACKAGE, + glipper.defs.VERSION, + applet_factory)