Davor Ocelic <docelic@crystallabs.io> [Tue, 30 Apr 2019 01:01:19 +0200] rev 110
Fix autocompleter for all commands.
Davor Ocelic <docelic@crystallabs.io> [Tue, 30 Apr 2019 00:43:52 +0200] rev 109
Multiple help-related changes
- Make every command's POD doc have a single-line introductory description.
This help is then used as a one-liner summary in Term::Shell.
- Tie %cmd_map to IxHash to preserve hash elements' order.
- Fix bug in Term::Shell's code related to command aliases.
(Also emailed Term::Shell author to include the fix in next release.)
- Remove run_() which already exists in Term::Shell.
- Use Term::Shell's help facilities instead of manually redefining
run_help() and other related commands. The complete POD documentation is
still available for viewing if user invokes ./shelldap --help.
- Completer functions are disabled right now (fix coming in the next
commit)
Davor Ocelic <docelic@crystallabs.io> [Mon, 29 Apr 2019 21:57:57 +0200] rev 108
Properly handle Ctrl+C; add '?' and 'man' aliases; don't import symbols
Make Ctrl+C behave like in the shell (abort current line, redisplay)
Add '?' and 'man' as aliases for help
Add qw// on module 'use's to not import any symbols
Davor Ocelic <docelic@crystallabs.io> [Mon, 29 Apr 2019 00:16:14 +0200] rev 107
Do not sort flaglist twice
With this change, 'inspect'ing an element prints its attributes
in a defined order: (requiredness, multivaluedness)
Previously, the order was alphabetical and varying.
Davor Ocelic <docelic@crystallabs.io> [Mon, 29 Apr 2019 00:10:31 +0200] rev 106
Make 'cat' default to '.' (cwd) instead of requiring argument
Davor Ocelic <docelic@crystallabs.io> [Mon, 29 Apr 2019 00:09:43 +0200] rev 105
Improve command descriptions
Davor Ocelic <docelic@crystallabs.io> [Sun, 28 Apr 2019 23:42:27 +0200] rev 104
Streamline %cmd_map
%cmd_map was previously a hash containing:
{
real_function => alias_function,
...
}
Now the structure of the hash is:
{
alias_or_real_func => [ real_func/if_any, autocompleter_func ],
...
}
This allows for a more streamlined definition of commands and aliases,
and makes it possible to keep all data in %cmd_map instead of having
additional special cases.
Davor Ocelic <docelic@crystallabs.io> [Sun, 28 Apr 2019 22:38:38 +0200] rev 103
Improve 'help' command
POD documentation has been modified to list available shell commands using =head2
instead of =item.
This, combined with run_help() modified to accept arguments, allows one to use
'help <command name>' to get help for a specific command, similar/equal to getting
help for shell builtins in regular shells.
E.g.:
help cat
help list
Davor Ocelic <docelic@crystallabs.io> [Sun, 28 Apr 2019 22:11:46 +0200] rev 102
Fix precedence of command line arguments
Previously, when autogenerating the config file, the name of config
itself was included in the YAML contents.
This in turn caused the config file to be re-parsed again and any
command line arguments were overwritten with values from the config
file.
Now the name of config file is not dumped if it is equal to the file
being written, and the config file is not reparsed if it is the same
file.
Davor Ocelic <docelic@crystallabs.io> [Sun, 28 Apr 2019 21:40:06 +0200] rev 101
Allow default attributes to be set via config and cmdline
This commit changes the default attribute list from a fixed '*'
to a configurable list, defaulting to ['*'].
It allows one to use config file or command line to set default
attributes to retrieve and display - i.e. to set default attributes
to '+' or to a list of multiple specific attributes.
Printing or changing this value through env/setenv is currently not
supported because env/setenv only work properly with string values
while attributes is a list.