in the following setup
├── common
│ ├── .pre-commit-config.yaml
│ ├── script1.sh
│ └── script-config
├── repo1
│ └── code_file
└── repo2
└── code_file
a common configuration from 'common' folder will be installed using an
absolute path to repo1 and repo2.
As local tools needs to be run (script1.sh with its
configuration script-config) we need to pass the path to common
somehow into the hook cmdline.
Add support for a template variable %CONFIG_BASEPATH% which
is automatically expanded to the configuration directory when
pre-commit run is called
This helps to create a single source of truth setup, while still
keeping the possibility to call non public tools and configurations
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
From the `pre-push.sample` file:
> Information about the commits which are being pushed is supplied as
> lines to the standard input in the form:
>
> <local ref> <local sha1> <remote ref> <remote sha1>
When `<local ref>` is not simply a branch name, but a more general
ref (see git-rev-parse(1)), it could contain whitespace, and that
breaks the split() call that expected only 3 spaces in the line.
Changed to use `rsplit(maxsplit=3)` since only the <local ref> is
likely to have embedded whitespace.
Added a new test case for the same.
On some systems, the executable might be named `coursier` instead of
`cs`. For example, this is the case on Arch Linux when using the AUR
package, or when following the official instructions when installing the
JAR-based launcher:
https://get-coursier.io/docs/cli-installation#jar-based-launcher
`go install` is the recommended way to install modules starting from go 1.16.
In go 1.18 `go get` cannot be used anymore to install packages [1]. go 1.18 is
not released yet.
[1] https://tip.golang.org/doc/go1.18#go-command
Add exceptions to the git env so externally configured gitconfig
values set via GIT_CONFIG_KEY_<n>, GIT_CONFIG_VALUE_<n> and
GIT_CONFIG_COUNT get passed through.