38 lines
833 B
Bash
38 lines
833 B
Bash
|
#!/usr/bin/env bash
|
||
|
set -e
|
||
|
|
||
|
die () {
|
||
|
echo >&2 "$@"
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
for command in help2man cargo-release; do
|
||
|
if ! command -v $command &> /dev/null
|
||
|
then
|
||
|
echo "$command binary could not be found"
|
||
|
exit
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
[ "$#" -eq 1 ] || die "usage: ./release.sh [patch|major|minor|rc]"
|
||
|
git diff --quiet || die 'ERROR: git repo is dirty.'
|
||
|
|
||
|
cargo build
|
||
|
|
||
|
for binary in "innernet" "innernet-server"; do
|
||
|
help2man --no-discard-stderr -s8 "target/debug/$binary" -N > "doc/$binary.8"
|
||
|
gzip -f "doc/$binary.8"
|
||
|
done
|
||
|
|
||
|
git add doc
|
||
|
git commit -m "meta: update manpages"
|
||
|
cargo release "$1" --no-confirm --exclude "hostsfile"
|
||
|
|
||
|
# re-stage the manpage commit and the cargo-release commit
|
||
|
git reset --soft @~2
|
||
|
|
||
|
VERSION="$(cargo pkgid -p shared | cut -d '#' -f 2)"
|
||
|
|
||
|
git commit -m "meta: release v$VERSION"
|
||
|
git tag "v$VERSION"
|