40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
Be warned that the `sed` command used will overwrite the entire line when the string is found.
|
|
|
|
If you want to add a git hash or version to an environment file, such as in a Laravel project, you can use this:
|
|
|
|
Filename: `.git/hooks/post-commit`
|
|
|
|
```
|
|
#!/usr/bin/env bash
|
|
|
|
SHORT_HASH=$(git rev-parse --short HEAD)
|
|
sed -i "/^GIT_HASH=\".*\"/ s//GIT_HASH=\"${SHORT_HASH}\"/" .env
|
|
```
|
|
|
|
If you would like to have which branch you are using written to the environment file every time you checkout a new branch, you can use this:
|
|
|
|
```
|
|
#!/usr/bin/env bash
|
|
|
|
GIT_BRANCH=$(git branch --show-current)
|
|
if [ -n "$GIT_BRANCH" ]; then
|
|
sed -i "/^GIT_BRANCH=\".*\"/ s//GIT_BRANCH=\"${GIT_BRANCH}\"/" .env
|
|
else
|
|
sed -i "/^GIT_BRANCH=\".*\"/ s//GIT_BRANCH=\"\"/" .env
|
|
fi
|
|
```
|
|
|
|
If you would also like to have the git tag written to the environment file, you can use this:
|
|
|
|
```
|
|
#!/usr/bin/env bash
|
|
|
|
GIT_TAG=$(git tag --points-at HEAD)
|
|
#GIT_TAG=$(git describe --exact-match --tags --abbrev=0 2>&1) # alternative way of getting the tag, potentially less stable
|
|
if [ -n "$GIT_TAG" ]; then
|
|
sed -i "/^GIT_TAG=\".*\"/ s//GIT_TAG=\"${GIT_TAG}\"/" .env
|
|
else
|
|
sed -i "/^GIT_TAG=\".*\"/ s//GIT_TAG=\"\"/" .env
|
|
fi
|
|
```
|