]> git.ipfire.org Git - people/stevee/pakfire.git/blob - scripts/pakfire-multicall.py
Reorder arguments when linking debugedit.
[people/stevee/pakfire.git] / scripts / pakfire-multicall.py
1 #!/usr/bin/python
2
3 import os
4 import sys
5
6 import logging
7 log = logging.getLogger("pakfire")
8
9 try:
10 from pakfire.cli import *
11 from pakfire.i18n import _
12
13 except ImportError, e:
14 # Catch ImportError and show a more user-friendly message about what
15 # went wrong.
16
17 # Try to load at least the i18n support, but when this fails as well we can
18 # go with an English error message.
19 try:
20 from pakfire.i18n import _
21 except ImportError:
22 _ = lambda x: x
23
24 # XXX Maybe we can make a more beautiful message here?!
25 print _("There has been an error when trying to import one or more of the"
26 " modules, that are required to run Pakfire.")
27 print _("Please check your installation of Pakfire.")
28 print
29 print _("The error that lead to this:")
30 print " ", e
31 print
32
33 # Exit immediately.
34 sys.exit(1)
35
36 basename2cls = {
37 "pakfire" : Cli,
38 "pakfire-builder" : CliBuilder,
39 "pakfire-server" : CliServer,
40 "builder" : CliBuilderIntern,
41 }
42
43 # Get the basename of the program
44 basename = os.path.basename(sys.argv[0])
45
46 # Check if the program was called with a weird basename.
47 # If so, we exit immediately.
48 if not basename2cls.has_key(basename):
49 sys.exit(127)
50
51 # Return code for the shell.
52 ret = 0
53
54 try:
55 # Creating command line interface
56 cli = basename2cls[basename]()
57
58 cli.run()
59
60 except KeyboardInterrupt:
61 log.critical("Recieved keyboard interupt (Ctrl-C). Exiting.")
62 ret = 1
63
64 # Catch all errors and show a user-friendly error message.
65 except Error, e:
66 log.critical("")
67 log.critical(_("An error has occured when running Pakfire."))
68 log.error("")
69
70 log.error(_("Error message:"))
71 log.error(" %s: %s" % (e.__class__.__name__, e.message))
72 log.error("")
73
74 log.error(_("Further description:"))
75 log.error(" %s" % e)
76 log.error("")
77
78 ret = e.exit_code
79
80 sys.exit(ret)
81