blob: b7286ff35c21e12fa912affc4911b849990a6828 [file] [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
```
Google workstations start with a small shell script as a pre-commit hook. To add
`all.bash` to it, 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, 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.