#hook #shell #tool

app shell-hooks

Run pre and post hooks while executing a command, just like githooks but for all programs

2 releases

0.1.2 Feb 11, 2019
0.1.0 Feb 11, 2019

#161 in #hook

Custom license

8KB
125 lines

Shell-hooks

Run pre and post hooks while executing a command, just like githooks but for all programs.

Future plans

  • Block the command based on status of prehook.
  • Extract async hooks and run using tokio.
  • Run sync hooks parallely but before the command.

Maybe someday

  • Implement this as a feature atop pre-existing shells (mayb ion?).

Getting Started

  • Install rust
  • Clone this repo.
  • Install this tool: cargo install --path ..
  • Alias any tool in ~/.bashrc by wrapping it with shell-hooks. Like alias git = 'shell-hooks git'.
  • Now add your pre and post hook definitions in ~/.local/share/dshell/definitions/. The file format is toml. The filename does not matter, only content does.

Writing hooks

Currently there are only two useful fields for hook type, the trigger and action.

  • Trigger: It is any command with space replaced with / and preceded by /cmd/. So git commit becomes /cmd/git/commit.
  • Action: It is any shell command defined as string.
  • Execution: Execution mode. Sync can run paralley yet completes before the command. Return status can block the execution of program. Async run parallely with actual command, return code does not matter. Default: Async

Contributing

If you have any contribution idea, please create an issue.

License

MIT License

Dependencies

~1.7–2.8MB
~49K SLoC