summaryrefslogtreecommitdiff
path: root/vendor/image/release.sh
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/image/release.sh')
-rwxr-xr-xvendor/image/release.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/image/release.sh b/vendor/image/release.sh
new file mode 100755
index 0000000..ae164d3
--- /dev/null
+++ b/vendor/image/release.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# Checks automatic preconditions for a release
+determine_new_version() {
+ grep "version = " Cargo.toml | sed -Ee 's/version = "(.*)"/\1/' | head -1
+}
+
+check_notexists_version() {
+ # Does the api information start with: '{"errors":'
+ [[ $(wget "https://crates.io/api/v1/crates/image/$1" -qO -) == "{\"errors\":"* ]]
+}
+
+check_release_description() {
+ major=${1%%.*}
+ minor_patch=${1#$major.}
+ minor=${minor_patch%%.*}
+ patch=${minor_patch#$minor.}
+ # We just need to find a fitting header line
+ grep -Eq "^### Version ${major}.${minor}$" CHANGES.md
+}
+
+version="$(determine_new_version)"
+check_release_description $version || { echo "Version does not have a release description"; exit 1; }
+check_notexists_version $version || { echo "Version $version appears already published"; exit 1; }
+