Skip to content

Releases: cristivlas/shmy

0.20.1

19 Oct 01:23
Compare
Choose a tag to compare
  • Aliases can override existing commands and other aliases
  • 'cat' and 'wc' commands now work with non-UTF8 files
  • Added clear --reset (and reset) alias.

0.20

11 Oct 02:12
Compare
Choose a tag to compare

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

07 Oct 00:50
Compare
Choose a tag to compare
  • Add experimental job control (Windows only) for launching commands
  • Small core eval fixes.

0.19.5

04 Oct 04:17
f08496b
Compare
Choose a tag to compare
  • 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 and eval --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

02 Oct 04:14
Compare
Choose a tag to compare
  • 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

29 Sep 23:21
Compare
Choose a tag to compare
  • 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

27 Sep 00:54
Compare
Choose a tag to compare
  • Add alias command
  • Add (very basic) whois command (Windows-only)
  • Add HISTFILESIZE
  • Bug fixes

v0.19.1

25 Sep 03:49
Compare
Choose a tag to compare

Bug fixes, grep improvements.

v0.19

24 Sep 06:49
db6db2c
Compare
Choose a tag to compare
  • 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

18 Sep 19:31
Compare
Choose a tag to compare

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, and for control structures.
  • YAML-based, customizable autocompletion based on a hierarchical command structure.
  • Unix-style environment variable expansion (e.g., $HOME).