ui: finish the search gui, remove the merge button
[ugit.git] / ugit / git-ugit
blob68f34be78215d66456db934491eadf2ac53ee1c1
1 #!/usr/bin/env python
2 # Copyright(C) 2007, David Aguilar <davvid@gmail.com>
3 # License: GPL v2 or later
4 import os
5 import sys
6 import optparse
7 from os.path import join
8 from os.path import dirname
9 from os.path import realpath
11 def setup_environment():
12 """Prepends sys.path with ugit's module path."""
13 # ex: sys.path = [ /usr/share, ... ]
14 # from ugit import utils
15 # implies: utils = /usr/share/ugit/utils.py
16 ugit = realpath(sys.argv[0])
17 bin = dirname(ugit)
18 prefix = dirname(bin)
19 share = join(prefix,'share')
20 sys.path.insert(0, share)
22 def main():
23 parser = optparse.OptionParser(
24 usage='%prog /repo/path-1 ... /repo/path-N*\n\n'
25 +'*the current directory is used when no '
26 +'paths are specified.''')
28 parser.add_option('-v', '--version',
29 help='Show ugit version',
30 dest='version',
31 default=False,
32 action='store_true')
33 opts, args = parser.parse_args()
35 # allow "git ugit /path/to/repo"
36 if args:
37 os.chdir(os.path.realpath(args[0]))
39 # This sets up sys.path so that the ugit modules can be found.
40 setup_environment()
42 if opts.version:
43 from ugit.version import VERSION
44 print "ugit version", VERSION
45 sys.exit(0)
47 # allow "git ugit /repo/path-1 .. /repo/path-N
48 from ugit.models import Model
49 from ugit import utils
50 from ugit.views import View
51 from ugit.controllers import Controller
53 if args[1:]:
54 for repo in [ os.path.realpath(r) for r in args[1:] ]:
55 utils.fork("git", "ugit", repo)
57 # load the model right away so that we can bail out when
58 # no git repo exists
59 model = Model()
61 # PyQt4
62 try:
63 from PyQt4 import QtCore
64 from PyQt4 import QtGui
65 except ImportError:
66 print "Sorry, you do not seem to have PyQt4 installed."
67 print "Please install it before using ugit."
68 print "e.g.: sudo apt-get install python-qt4"
69 sys.exit(-1)
71 app = QtGui.QApplication(sys.argv)
72 app.setWindowIcon(QtGui.QIcon( utils.get_icon('git.png')) )
73 locale = str(QtCore.QLocale().system().name())
74 qmfile = utils.get_qm_for_locale( locale )
75 if os.path.exists(qmfile):
76 translator = QtCore.QTranslator()
77 translator.load(qmfile)
78 app.installTranslator(translator)
79 # simple mvc
80 view = View(app.activeWindow())
81 ctl = Controller(model, view)
82 view.show()
83 sys.exit(app.exec_())
85 if __name__ == "__main__":
86 main()