summaryrefslogtreecommitdiff
path: root/meta/recipes-core/systemd/systemd/0001-Revert-systemd-analyze-use-argparse-instead-of-getop.patch
blob: 1e208a244fd7c7326057b861e8c9bd75e4a64974 (plain)
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