Changeset 164
- Timestamp:
- 06/22/04 03:54:43 (4 years ago)
- Files:
-
- manage/trunk/CLI/CLI.pm (modified) (6 diffs)
- manage/trunk/manage (modified) (8 diffs)
- manage/trunk/plugins/nodelist2.pm (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
manage/trunk/CLI/CLI.pm
r163 r164 101 101 # node, or undef if not found. 102 102 # 103 # parse_node(\@tokens [, $node, \@args ])103 # parse_node(\@tokens [, $node, \@args, $trackall]) 104 104 sub parse_node { 105 105 my $self = shift; … … 210 210 my $key = $rx; 211 211 my $trackvar = 0; 212 my $trackall = 0; 212 213 213 214 # Skip if help … … 216 217 # Find out if this candidate is a unique minimum match 217 218 my $unique = 0; 218 219 if (defined($token)) {220 my @candidates = grep(/^(?:\d+\)(?:\$))?$token/, keys(%cmd));221 222 $unique = 1 if @candidates == 1 and $candidates[0] eq $key;223 }224 219 225 220 # Remove ordering token … … 230 225 $trackvar = 1; 231 226 $rx =~ s/^\$//; 227 # Remove wildcard 228 if ($rx =~ /^\*/) { 229 $trackall = 1; 230 $rx =~ s/^\*//; 231 } 232 } 233 234 if (defined($token)) { 235 my @candidates = grep(/^(?:\d+\)(?:\$))?$token/, keys(%cmd)); 236 237 $unique = 1 if @candidates == 1 and $candidates[0] eq $key; 232 238 } 233 239 … … 239 245 if ($type eq 'HASH') { 240 246 push(@tokens, $token) if $rx eq 'ACTION'; 241 return $self->parse_node(\@tokens, $cmd{$key}, \@args) ;247 return $self->parse_node(\@tokens, $cmd{$key}, \@args) 242 248 } elsif ($type eq 'CODE') { 243 249 # Tokens are still remaining … … 245 251 return ('HELP', "\e[32m\e[1mOK Command is complete.\e[0m\n") 246 252 if "@tokens" eq '?'; 247 return ('ERROR', 'Trailing tokens (possibly missing help?).');253 return ('ERROR', "Trailing tokens: '@tokens' (possibly missing help?).") 248 254 } 249 255 return ('ACTION', $cmd{$key}, \@args); manage/trunk/manage
r158 r164 18 18 19 19 20 my $SELF = $0; $SELF =~ s/.*\///; 20 21 my $DEBUG = 0; 21 22 my $BREAK = 0; $SIG{INT} = sub { $BREAK = 1; }; … … 23 24 my @ALTCOLOURS = ("\e[36m", "\e[36m\e[1m"); 24 25 # Global variables 25 my $PROMPT = 'manage> ';26 my $PROMPT = "$SELF> "; 26 27 my $BANNER = ''; 28 # Plugin path 27 29 my $PLUGINS = './plugins'; 28 30 our %CONF = ( … … 237 239 238 240 # Initialise terminal and readline 239 my $term = new Term::ReadLine( 'manage'); $term->ornaments(0);241 my $term = new Term::ReadLine($SELF); $term->ornaments(0); 240 242 my $termattribs = $term->Attribs; 241 243 # Do command completion … … 259 261 }; 260 262 # Map the ? key to auto-magic help 261 $term->add_defun(' dns-help', sub {263 $term->add_defun('manage-help', sub { 262 264 my ($type, $action, $args) = $CLI->parse($termattribs->{line_buffer} . ' ?'); 263 265 if ($type eq 'HELP') { … … 267 269 }, ord('?')); 268 270 269 load_config("/etc/ manage.conf");270 load_config("$ENV{HOME}/. managerc");271 load_config("/etc/$SELF.conf"); 272 load_config("$ENV{HOME}/.{$SELF}rc"); 271 273 272 274 for my $key (keys %CONF) { … … 275 277 276 278 END { 277 Term::ReadLine::Gnu->WriteHistory("$ENV{HOME}/. managehistory");279 Term::ReadLine::Gnu->WriteHistory("$ENV{HOME}/.{$SELF}history"); 278 280 if (!$FATAL) { 279 281 # Compare original config to current config … … 284 286 return; 285 287 COMMIT: info("Committing modified config."); 286 if (open(CONF, ">$ENV{HOME}/. managerc")) {288 if (open(CONF, ">$ENV{HOME}/.{$SELF}rc")) { 287 289 foreach my $key (keys %CONF) { 288 290 print(CONF "# $CONF{$key}->{help}\n"); … … 294 296 } 295 297 296 Term::ReadLine::Gnu->ReadHistory("$ENV{HOME}/. managehistory");298 Term::ReadLine::Gnu->ReadHistory("$ENV{HOME}/.{$SELF}history"); 297 299 298 300
