#!/bin/bash # See usage() for usage source "$(dirname -- "$0";)/rel-common.sh" # Helpers function usage() { echo "Usage:" echo " # release everything changed" echo " ./release.sh" echo echo " # release one crate" echo " ./release.sh write-fonts" echo echo "Typically you should be running this after bump-version.sh" } # What is it you want us to do? if [ $# -gt 1 ]; then die_with_usage "Specify 0 - meaning all - or 1 packages" fi crate_specifier="" if [ $# -eq 1 ]; then crates=("$@") validate_crates "${crates[@]}" crate_specifier="-p ${crates[0]}" fi # Do the thing. We set errexit so step failure should break us out. echo "Dry run..." cargo release publish ${crate_specifier} echo "Doing the thing; ${COLOR_RED}PRESS CTRL+C if anything looks suspicious${TEXT_RESET}" echo "Publish to crates.io" cargo release publish -x ${crate_specifier} # this prompts y/N echo "Generate tags" cargo release tag -x ${crate_specifier} # this prompts y/N echo "Pushing tag to github" git push --tags echo "NEXT STEPS" echo "You probably want to create a release on github"