Releases: cristivlas/shmy
Releases · cristivlas/shmy
0.20.1
0.20
New Experimental Feature: Hooks
The shell supports a 'hooks' feature, which allows the execution of custom actions upon specific events. These hooks are configured using a config.yaml file, located in ~/.shmy/hooks. Each hook is triggered by an event such as changing directories.
Supported Events:
- on_change_dir: Executes whenever the working directory changes;
- on_start_eval_loop: Executes when the evaluation loop of the shell starts;
- on_external_command: Executes after successful completion of an external command.
New Prompt Customization Option
- Added \b for $GIT_BRANCH (if defined). This is used in conjunction with the hooks feature to display current git branch in the prompt.
Breaking change
An expression that consists of a pipeline sending output into a variable evaluates as the pipeline status (success or failure). This is different
from previous versions where the value of the variable was the result of the evaluation. The rationale for this change is to allow an evaluation such as:
if (ls | x) (Ok)
to work as expected.
Bug Fixes
- Shell used to occasionally deadlock on Windows after launching an external command. This should be fixed now.
Misc.
- Added 'reboot' alias
0.19.6
- Add experimental job control (Windows only) for launching commands
- Small core eval fixes.
0.19.5
- Windows: support Ctrl+C for terminating external commands.
- Windows: use the AssocQueryStringW shell API to launch non-exe commands rather than just running
cmd.exe /C
(cmd.exe is still used for failover). - Windows: revisited exit code from
sudo
. - export and source aliases are automatically created for
eval --export
andeval --source
, respectively. - The shell passes command line arguments to scripts, in both:
**run $SHELL <script_file_path> [args...]
, and
**source <script_file_path> [args...]
.
**$0
is the name of the script file,$1, $2
etc. are the rest of arguments,$#
is the number of args not counting$0
, and$@
is the concatenation of the arguments, including $0
0.19.4
- Removed chrono-tz dependency to reduce executable size
- Bug fix in evaluation of 'continue' inside while / for
- Workaround for 'ps' total runtime column, show a dash instead of bogus number when user does not have access to query the process.
0.19.3
- Revisit notion of 'ls' hidden files to observer DOS / Windows hidden attribute
- Fix expression evaluation handling of command status, 'break' and 'continue'
- Fix globbing of file names that contains spaces, etc.
- Prompt user to confirm alias removal in
alias --remove <name>
command
0.19.2
- Add alias command
- Add (very basic) whois command (Windows-only)
- Add HISTFILESIZE
- Bug fixes
v0.19.1
Bug fixes, grep improvements.
v0.19
- Cut and Strings command
- Documented prompt variable $__prompt and customization in help
- Rewritten tab completion to include command line flags for both built-in commands and custom commands
- Bug fixes
** Fix for #9
** Fix for #10
** Fix for #12
** Fix potential infinite loops following symbolic links in grep
Initial Release - v0.18
v0.18 - Initial Release
Key features include:
- Command parsing and execution with built-in commands and support for external commands.
- Expression evaluation with
if/else
,while
, andfor
control structures. - YAML-based, customizable autocompletion based on a hierarchical command structure.
- Unix-style environment variable expansion (e.g.,
$HOME
).