#!/usr/bin/python

###
# Copyright (C) 2007 Alex Graveley <alex@beatniksoftware.com>
#
# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
###

import sys
import os


#
# bug-buddy integration from Fernando Herrera <fherrera@onirica.com>
#
def bug_catcher(exctype, value, tb):
    import gtk
    gtk.gdk.pointer_ungrab()
    gtk.gdk.keyboard_ungrab()

    import traceback
    import tempfile
    if exctype is not KeyboardInterrupt:
        msg = "Gimmie Version: %s\n\n" % ("0.2.7")
        msg += "".join(traceback.format_exception(exctype, value, tb))
        print >> sys.stderr, msg
        fd, name = tempfile.mkstemp()
        try:
            os.write(fd,msg)
            os.system("bug-buddy --include=\"%s\" --appname=\"%s\" --package-ver=\"%s\"" % \
                      (name, "gimmie", "0.2.7"))
        finally:
            os.unlink(name)
    raise SystemExit
sys.excepthook = bug_catcher


pwd, dirname = os.path.split(os.path.dirname(os.path.abspath(__file__)))
if dirname == "gimmie" and os.path.isfile(os.path.join(pwd, "gimmie", "gimmie.py")):
    print 'Running uninstalled gimmie, modifying PYTHONPATH.'
    sys.path.insert(0, pwd)
elif not "/usr/lib/python2.5/site-packages" in sys.path:
    sys.path.insert(0, "/usr/lib/python2.5/site-packages")


# Change to user's home directory by default
os.chdir(os.path.expanduser("~"))


import gimmie.gimmie
gimmie.gimmie.main(sys.argv[1:])
