mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-23 22:27:38 -05:00
56 lines
1 KiB
Bash
56 lines
1 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
#
|
||
|
# Caddy build script. Automates proper versioning.
|
||
|
#
|
||
|
# Usage:
|
||
|
#
|
||
|
# $ ./build.bash [output_filename]
|
||
|
#
|
||
|
# Outputs compiled program in current directory.
|
||
|
# Default file name is 'ecaddy'.
|
||
|
#
|
||
|
set -e
|
||
|
|
||
|
output="$1"
|
||
|
if [ -z "$output" ]; then
|
||
|
output="ecaddy"
|
||
|
fi
|
||
|
|
||
|
pkg=main
|
||
|
|
||
|
# Timestamp of build
|
||
|
builddate_id=$pkg.buildDate
|
||
|
builddate=`date -u`
|
||
|
|
||
|
# Current tag, if HEAD is on a tag
|
||
|
tag_id=$pkg.gitTag
|
||
|
set +e
|
||
|
tag=`git describe --exact-match HEAD 2> /dev/null`
|
||
|
set -e
|
||
|
|
||
|
# Nearest tag on branch
|
||
|
lasttag_id=$pkg.gitNearestTag
|
||
|
lasttag=`git describe --abbrev=0 --tags HEAD`
|
||
|
|
||
|
# Commit SHA
|
||
|
commit_id=$pkg.gitCommit
|
||
|
commit=`git rev-parse --short HEAD`
|
||
|
|
||
|
# Summary of uncommited changes
|
||
|
shortstat_id=$pkg.gitShortStat
|
||
|
shortstat=`git diff-index --shortstat HEAD`
|
||
|
|
||
|
# List of modified files
|
||
|
files_id=$pkg.gitFilesModified
|
||
|
files=`git diff-index --name-only HEAD`
|
||
|
|
||
|
|
||
|
go build -ldflags "
|
||
|
-X \"$builddate_id=$builddate\"
|
||
|
-X \"$tag_id=$tag\"
|
||
|
-X \"$lasttag_id=$lasttag\"
|
||
|
-X \"$commit_id=$commit\"
|
||
|
-X \"$shortstat_id=$shortstat\"
|
||
|
-X \"$files_id=$files\"
|
||
|
" -o "$output"
|