#!/usr/bin/env bash set -e cd "${BASH_SOURCE%/*}" 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-$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." echo "Cleaning .." ( git clean -ffdx . && cd core && git clean -ffdx . ) echo "Creating archive $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" echo "Installing archive and signature in current site .." cd ../../public/site/current mv "../../../platform-independent/cli-c/$mpwArchive" .; [[ -e $_ ]] mv "../../../platform-independent/cli-c/$mpwArchive.sig" .; [[ -e $_ ]] ln -sf "$mpwArchive" "masterpassword-cli.tar.gz"; [[ -e $_ ]] ln -sf "$mpwArchive.sig" "masterpassword-cli.tar.gz.sig"; [[ -e $_ ]] echo echo "Done. Ready to publish the site." echo " package: $mpwArchive" echo " signature: $mpwArchive.sig" echo " url: https://ssl.masterpasswordapp.com/$mpwArchive"