diff --git a/platform-independent/cli-c/.gitignore b/platform-independent/cli-c/.gitignore index ee9eeb7b..23c79411 100644 --- a/platform-independent/cli-c/.gitignore +++ b/platform-independent/cli-c/.gitignore @@ -5,6 +5,7 @@ mpw mpw-bench mpw-tests +TAG VERSION mpw-*.tar.gz mpw-*.tar.gz.sig diff --git a/platform-independent/cli-c/distribute b/platform-independent/cli-c/distribute index a0c1c8a6..fff64e42 100755 --- a/platform-independent/cli-c/distribute +++ b/platform-independent/cli-c/distribute @@ -2,11 +2,11 @@ set -e cd "${BASH_SOURCE%/*}" -tag=$(git describe --match '*-cli*') -commit=$(git describe --long --dirty --match '*-cli*') -[[ $commit != *-dirty ]] || { echo >&2 "Tree is dirty, first commit any changes."; exit 1; } +tag=$(git describe --exact-match --match '*-cli*') || { echo >&2 "Tree is not at a release tag."; exit 1; } +version=$(git describe --match '*-cli*' --long --dirty --broken) +[[ $version != *-dirty ]] || { echo >&2 "Tree is dirty, first commit any changes."; exit 1; } -mpwArchive=mpw-$commit.tar.gz +mpwArchive=mpw-$version.tar.gz [[ -e $mpwArchive ]] && echo >&2 "WARNING: $mpwArchive already exists. Will overwrite." read -n1 -p "Will prepare and release $mpwArchive. Press a key to continue or ^C to abort." @@ -14,8 +14,9 @@ echo "Cleaning .." ( git clean -ffdx . && cd core && git clean -ffdx . ) echo "Creating archive $mpwArchive .." -git show --show-signature --pretty=format:%H --quiet "$tag" > VERSION -{ git ls-files -z .; printf VERSION; } | xargs -0 tar -Lcvzf "$mpwArchive" +echo "$version" > VERSION +git show --show-signature --pretty=format:%H --quiet "$tag" > TAG +{ git ls-files -z .; printf '%s\0' VERSION TAG; } | xargs -0 tar -Lcvzf "$mpwArchive" echo "Creating archive signature $mpwArchive.sig .." gpg --detach-sign "$mpwArchive"