1 |
commit: 5c640fdb7884f318b306fb10bd6b499b1b7c0f40 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Sat Aug 23 17:17:08 2014 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Sat Aug 23 17:17:08 2014 +0000 |
6 |
URL: http://sources.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=5c640fdb |
7 |
|
8 |
console/interpreter: minor improvements |
9 |
|
10 |
* added --clear option to "history" command |
11 |
* "set" can now be called without VAR=VALUE |
12 |
|
13 |
--- |
14 |
roverlay/console/interpreter.py | 31 ++++++++++++++++++++++--------- |
15 |
1 file changed, 22 insertions(+), 9 deletions(-) |
16 |
|
17 |
diff --git a/roverlay/console/interpreter.py b/roverlay/console/interpreter.py |
18 |
index 107a14a..00b6ea9 100644 |
19 |
--- a/roverlay/console/interpreter.py |
20 |
+++ b/roverlay/console/interpreter.py |
21 |
@@ -334,6 +334,12 @@ class ConsoleInterpreter ( cmd.Cmd ): |
22 |
parser.add_argument ( "files", metavar='<file>', nargs='*', |
23 |
help='files to read', type=self.argparse_filepath, |
24 |
) |
25 |
+ |
26 |
+ parser = self.get_argparser ( "history", create=True ) |
27 |
+ parser.add_argument ( "-c", "--clear", |
28 |
+ default=False, action='store_true', |
29 |
+ help="clear history" |
30 |
+ ) |
31 |
# --- end of setup_argparser (...) --- |
32 |
|
33 |
def setup_interpreter ( self ): |
34 |
@@ -466,7 +472,7 @@ class ConsoleInterpreter ( cmd.Cmd ): |
35 |
if self.state == ConsoleInterpreterStatus.STATE_CMD_EXEC: |
36 |
if self.is_onerror(): |
37 |
self.clear_onerror() |
38 |
- elif self.lastcmd and self.lastcmd != "history": |
39 |
+ elif self.lastcmd and self.lastcmd.split(None,1)[0] != "history": |
40 |
self._history.append ( line ) |
41 |
|
42 |
self.state.goto ( "READY" ) |
43 |
@@ -549,8 +555,12 @@ class ConsoleInterpreter ( cmd.Cmd ): |
44 |
|
45 |
def do_history ( self, line ): |
46 |
"""Shows the command history.""" |
47 |
- sys.stdout.write ( '\n'.join ( l for l in self._history ) ) |
48 |
- sys.stdout.write ( '\n' ) |
49 |
+ args = self.parse_cmdline ( "history", line ) |
50 |
+ if args.clear: |
51 |
+ self._history.reset() |
52 |
+ else: |
53 |
+ sys.stdout.write ( '\n'.join ( l for l in self._history ) ) |
54 |
+ sys.stdout.write ( '\n' ) |
55 |
# --- end of history (...) --- |
56 |
|
57 |
def do_pwd ( self, line ): |
58 |
@@ -657,19 +667,22 @@ class ConsoleInterpreter ( cmd.Cmd ): |
59 |
# --- end of do_declare (...) --- |
60 |
|
61 |
def do_set ( self, line ): |
62 |
- """Sets a variable. |
63 |
+ """Sets a variable or prints all variables. |
64 |
|
65 |
- Usage: set VAR=VALUE |
66 |
+ Usage: set [VAR=VALUE] |
67 |
|
68 |
Examples: |
69 |
* set PS1=cmd % |
70 |
* set dep=fftw 3 |
71 |
""" |
72 |
- name, sepa, value = line.partition ( '=' ) |
73 |
- if not sepa: |
74 |
- sys.stderr.write ( "set, bad syntax: {}\n".format ( line ) ) |
75 |
+ if not line: |
76 |
+ self.do_declare ( line ) |
77 |
else: |
78 |
- self.set_var ( name.strip(), value ) |
79 |
+ name, sepa, value = line.partition ( '=' ) |
80 |
+ if not sepa: |
81 |
+ sys.stderr.write ( "set, bad syntax: {}\n".format ( line ) ) |
82 |
+ else: |
83 |
+ self.set_var ( name.strip(), value ) |
84 |
# --- end of do_set (...) --- |
85 |
|
86 |
def do_unset ( self, line ): |