1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
Upstream-Status: Backport [revert]
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
From 2003e63f48cee2f497de7b90b66284f98c1c9919 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Mon, 10 Dec 2012 12:24:32 +0100
Subject: [PATCH 1/2] Revert "systemd-analyze: use argparse instead of getopt"
This reverts commit 0c0271841ab45595f71528c50bcf1904d4b841d5.
Argparse is broken in current OE python
---
src/analyze/systemd-analyze | 60 ++++++++++++++++++++++++++++---------------
1 files changed, 39 insertions(+), 21 deletions(-)
diff --git a/src/analyze/systemd-analyze b/src/analyze/systemd-analyze
index 88699d6..87a83dd 100755
--- a/src/analyze/systemd-analyze
+++ b/src/analyze/systemd-analyze
@@ -1,7 +1,6 @@
#!/usr/bin/python
-import sys, os
-import argparse
+import getopt, sys, os
from gi.repository import Gio
try:
import cairo
@@ -76,6 +75,20 @@ def draw_text(context, x, y, text, size = 12, r = 0, g = 0, b = 0, vcenter = 0.5
context.restore()
+def usage():
+ sys.stdout.write("""systemd-analyze [--user] time
+systemd-analyze [--user] blame
+systemd-analyze [--user] plot
+
+Process systemd profiling information
+
+ -h --help Show this help
+""")
+
+def help():
+ usage()
+ sys.exit()
+
def time():
initrd_time, start_time, finish_time = acquire_start_time()
@@ -266,29 +279,34 @@ def plot():
surface.finish()
-parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,
- description='Process systemd profiling information',
- epilog='''\
-time - print time spent in the kernel before reaching userspace
-blame - print list of running units ordered by time to init
-plot - output SVG graphic showing service initialization
-''')
-
-parser.add_argument('action', choices=('time', 'blame', 'plot'),
- default='time', nargs='?',
- help='action to perform (default: time)')
-parser.add_argument('--user', action='store_true',
- help='use the session bus')
+def unknown_verb():
+ sys.stderr.write("Unknown verb '%s'.\n" % args[0])
+ usage()
+ sys.exit(1)
-args = parser.parse_args()
+bus = Gio.BusType.SYSTEM
-if args.user:
- bus = Gio.BusType.SESSION
-else:
- bus = Gio.BusType.SYSTEM
+try:
+ opts, args = getopt.gnu_getopt(sys.argv[1:], "h", ["help", "user"])
+except getopt.GetoptError as err:
+ sys.stdout.write(str(err) + "\n")
+ usage()
+ sys.exit(2)
+for o, a in opts:
+ if o in ("-h", "--help"):
+ help()
+ elif o == '--user':
+ bus = Gio.BusType.SESSION
+ else:
+ assert False, "unhandled option"
verb = {'time' : time,
'blame': blame,
'plot' : plot,
+ 'help' : help,
}
-verb.get(args.action)()
+
+if len(args) == 0:
+ time()
+else:
+ verb.get(args[0], unknown_verb)()
--
1.7.7.6
|