| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | #!/bin/bashset -eprojects_token=${1:-}github_token=${2:-}if [[ -z $github_token ]]; then    echo "Usage: $0 [projects-token] [github-token]"    exit 1fiif [[ ! -f NEWS ]]; then    echo "Missing NEWS file. Try running from root of repository."    exit 1fiversion=$(head --lines=1 NEWS)if [[ $version =~ .*dev* ]]; then    echo "Refusing to release a dev version: $version"    exit 1figit tag $versiongit push origin $versiongit push github $version# Build borgmatic and publish to pypi.rm -fr distpython3 setup.py bdist_wheelpython3 setup.py sdistgpg --detach-sign --armor dist/borgmatic-*.tar.gzgpg --detach-sign --armor dist/borgmatic-*-py3-none-any.whltwine upload -r pypi dist/borgmatic-*.tar.gz dist/borgmatic-*.tar.gz.asctwine upload -r pypi dist/borgmatic-*-py3-none-any.whl dist/borgmatic-*-py3-none-any.whl.asc# Set release changelogs on projects.torsion.org and GitHub.release_changelog="$(cat NEWS | sed '/^$/q' | grep -v '^\S')"escaped_release_changelog="$(echo "$release_changelog" | sed -z 's/\n/\\n/g' | sed -z 's/\"/\\"/g')"curl --silent --request POST \    "https://projects.torsion.org/api/v1/repos/borgmatic-collective/borgmatic/releases" \    --header "Authorization: token $projects_token" \    --header "Accept: application/json" \    --header "Content-Type: application/json" \    --data "{\"body\": \"$escaped_release_changelog\", \"draft\": false, \"name\": \"borgmatic $version\", \"prerelease\": false, \"tag_name\": \"$version\"}"github-release create --token="$github_token" --owner=witten --repo=borgmatic --tag="$version" \    --name="borgmatic $version" --body="$release_changelog"
 |