diff seal-galaxy-cc1b1911/make_release.sh @ 0:244073d9abc1 draft default tip

Uploaded
author crs4
date Wed, 15 Oct 2014 09:41:10 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/seal-galaxy-cc1b1911/make_release.sh	Wed Oct 15 09:41:10 2014 -0400
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+#set -x
+set -o errexit
+set -o nounset
+set -o pipefail
+
+PackageName="seal-galaxy"
+
+
+function error() {
+    if [ $# -ge 1 ]; then
+        echo $* >&1
+    fi
+    exit 1
+}
+
+function usage_error() {
+    echo "Usage: $0 version"
+    echo "Specify version as a git revid (id or tag) for the Seal repository, and " >&2
+    echo "optionally a '-n' suffix for the wrapper version; e.g., 0.4.1, 0.4.1-1, 0.4.1-2" >&2
+    error
+}
+
+function confirm() {
+    local prompt="${1}"
+    echo "${prompt} [Y/n]"
+    read -p "Answer: " yn
+    case "${yn}" in
+        ''|[Yy]) # do nothing and keep going
+            ;;
+        [Nn]) echo "Aborting"; exit 0
+            ;;
+        *) usage_error "Unrecognized answer. Please specify Y or n"
+            ;;
+    esac
+    return 0
+}
+
+function rewrite_seal_version() {
+  local grep_expr='<package name="seal" version=".*">'
+  if ! grep  "${grep_expr}" tool_dependencies.xml >/dev/null ; then
+    error "Couldn't find expected package line in tool_dependencies.xml"
+  fi
+
+  printf -v sed_expr1  '/<package name="seal"/s/version="[^"]*"/version="%s"/' "${seal_version}"
+  printf -v sed_expr2  '/<action type="shell_command">/s/git reset --hard \([^<]\+\)\s*/git reset --hard %s/' "${seal_version}"
+  sed -i -e "${sed_expr1}" -e "${sed_expr2}" tool_dependencies.xml
+  echo "Edited tool_dependencies.xml" >&2
+
+  # edit the tools as well
+  printf -v sed_expr3 '/<requirement type="package" version=.*>\s*seal\s*</s/version="[^"]\+"/version="%s"/' "${seal_version}"
+  printf -v sed_expr4 '/<tool id=/s/version="[^"]\+"/version="%s"/' "${seal_version}"
+  sed -i -e "${sed_expr3}" -e "${sed_expr4}" seal/*.xml
+
+  echo "Edited tool definitions" >&2
+}
+
+############# main ###############3
+
+if [ $# -eq 1 ]; then
+    wrapper_version="${1}"
+else
+    usage_error
+fi
+
+echo "Will rewrite tool_dependencies.xml setting the the package version to '${wrapper_version}'."
+confirm "Are you sure you want to proceed? [Y/n]"
+
+# ensure the tag doesn't already exist
+if git tag -l | grep -w "${wrapper_version}" ; then
+    error "A release tag called '${wrapper_version}' already exists"
+fi
+
+# remove the wrapper suffix, if it's there
+seal_version=$(echo ${wrapper_version} | sed -e 's/-[^-]\+$//')
+echo "Using seal version ${seal_version}"
+
+rewrite_seal_version "${seal_version}"
+
+git commit -a --allow-empty -m "Wrappers release for Seal '${seal_version}'"
+git tag "${wrapper_version}"
+
+revid=$(git rev-parse HEAD)
+
+echo "Tagged new commit ${revid} with tag '${wrapper_version}'"
+
+short_revid=${revid::8}
+archive_name=${PackageName}-${short_revid}.tar.gz
+
+git archive --format tar.gz --prefix ${PackageName}-${short_revid}/ HEAD -o "${archive_name}"
+
+echo "Don't forget to upload the archive to the toolshed!"