this repo has no description
1# `tangled-on-commit`
2
3Run a shell command whenever a specific repo gets a commit
4
5```sh
6$ tangled-on-commit @vielle.dev/tangled-on-commit ./commit.sh
7```
8
9> Created for linux. Should work fine on MacOS. Will not work on windows.
10> Note: The shell command is placed inside `/bin/sh -c "COMMAND"`, so make sure to escape quotes and backslashes. I reccomend executing a shell file and piping stdout and stderr to a log file
11
12## Installation
13
14Prerequisites:
15
16- `Git`
17- `Rust` (1.88+)
18- `Cargo`
19
201. Clone this repo:
21 `git clone git@tangled.sh:vielle.dev/tangled-on-commit`
222. Compile the binary:
23 `cargo build --release`
243. Copy the binary to your path:
25 `sudo cp ./target/release/tangled-on-commit /bin`
26
27## Usage
28
29### CLI Arguments
30
31- `tangled-on-commit (-h | --help)`
32 Displays this message
33
34- `tangled-on-commit`
35 No specified handle, repo, or command. Falls back to config/env
36
37- `tangled-on-commit SHELL`
38 Uses config/env for handle and repo
39
40- `tangled-on-commit @HANDLE SHELL`
41 Uses config/env for repo
42
43- `tangled-on-commit REPO SHELL`
44 Uses config/env for handle
45
46- `tangled-on-commit @HANDLE/REPO SHELL`
47 `tangled-on-commit HANDLE REPO SHELL`
48 No config/env
49
50### JSON
51
52Loads the file `tangled-on-commit.json` from cwd if it exists.
53Reads keys \"handle\", \"repo_name\", and \"shell\".
54Unknown keys are ignored and any key can be ommitted
55JSON is used if the arguments aren't passed to the CLI
56
57### Env
58
59Loads the environment variables `TANGLED_ON_COMMIT_HANDLE` and `TANGLED_ON_COMMIT_REPO_NAME`
60Shell cannot be set by environment variables.
61Env variables are used if relevant keys are ommitted an arguments aren't passed to the CLI.