blob: 526d2ca6ae8877f6adac8819689750cbc7d348e3 [file] [log] [blame] [view]
### Install pre-commit hook
The `all.bash` script runs quickly enough so that you can use it as a git
pre-commit hook. If you don't already have a pre-commit hook, you can install
it with
```
ln -s -f ../../all.bash .git/hooks/pre-commit
```
To add `all.bash` to an existing pre-commit hook, edit `.git/hooks/pre-commit` and add the line
```
./all.bash
```
You may prefer to run `all.bash` only when you push (which happens when you run
`git codereview mail`). You'll need a small script to discard the arguments
that the pre-push hook is called with. Make this the contents of
`.git/hooks/pre-push`:
```
#!/bin/sh
./all.bash
```
and then
```
chmod +x .git/hooks/pre-push
```
### Running Linters/Formatters/Tests
The `all.bash` script can be used to selectively run actions on the source
(e.g. linters, code formatters, or tests). Run `./all.bash help` to see a list
of supported actions.
Some actions are not run by the default invocation of `./all.bash` that is
executed in the commit hook. Notably, the `prettier` command is not run,
because it has a dependency on nodejs, which is otherwise not needed and which
not all developers have installed on their system.
If you are modifying CSS or Javascript and you do not have docker installed,
install prettier as described at https://prettier.io/docs/en/install.html,
and run `./all.bash prettier` to format your changes before mailing your CL.