Support .rpm and .jar files (Christopher Arndt).
[rox-archive.git] / findrox.py
blob411b2ac08fa1c1d93efc086e41c7864c99b97c04
1 # Most of the common code needed by ROX applications is in ROX-Lib.
2 # Except this code, which is needed to find ROX-Lib in the first place!
4 # Just make sure you import findrox before importing anything inside
5 # ROX-Lib...
7 import os, sys
8 from os.path import exists
9 import string
11 try:
12 path = os.environ['LIBDIRPATH']
13 paths = string.split(path, ':')
14 except KeyError:
15 paths = [ os.environ['HOME'] + '/lib', '/usr/local/lib', '/usr/lib' ]
17 paths = map(lambda p: p +'/ROX-Lib', paths)
18 found = 0
19 for p in paths:
20 if exists(p):
21 found = 1
22 sys.path.append(p + '/python')
23 break
24 if not found:
25 err = "This program needs ROX-Lib to run.\n" + \
26 "I tried all of these places:\n\n" + \
27 string.join(paths, '\n') + '\n\n' + \
28 "ROX-Lib is available from:\nhttp://rox.sourceforge.net"
29 try:
30 sys.stderr.write('*** ' + err + '\n')
31 except:
32 pass
33 import gtk
34 try:
35 win = gtk.GtkDialog()
36 message = gtk.GtkLabel(err)
37 except AttributeError:
38 win = gtk.MessageDialog(None, 0,
39 gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, err)
40 win.set_position(gtk.WIN_POS_CENTER)
41 win.run()
42 sys.exit(1)
43 win.set_title('Missing ROX-Lib')
44 win.set_position(gtk.WIN_POS_CENTER)
45 message.set_padding(20, 20)
46 win.vbox.pack_start(message)
48 ok = gtk.GtkButton("OK")
49 ok.set_flags(gtk.CAN_DEFAULT)
50 win.action_area.pack_start(ok)
51 ok.connect('clicked', mainquit)
52 ok.grab_default()
54 win.connect('destroy', mainquit)
55 win.show_all()
56 mainloop()
57 sys.exit(1)