/ build / release
release
 1  #!/bin/sh
 2  set -e
 3  
 4  if [ $# -ne 1 ]; then
 5    echo "Usage: $0 <version-number>"
 6    exit 1
 7  fi
 8  
 9  SSH_LOGIN=${SSH_LOGIN:-release}
10  SSH_ADDRESS=${SSH_ADDRESS:-$SSH_LOGIN@files.radicle.xyz}
11  SSH_KEY="$(rad path)/keys/radicle"
12  
13  main() {
14    version="$1"
15    destination="/var/www/files.radicle.xyz/releases"
16  
17    if [ -z "$version" ]; then
18      echo "fatal: empty version number" >&2 ; exit 1
19    fi
20  
21    if ! git rev-parse --verify "releases/$version^{tag}" >/dev/null 2>&1; then
22      echo "error: '$version' is not a valid version, tag 'releases/$version' not found" >&2
23      exit 1
24    fi
25  
26    printf "Releasing Radicle %s? [y/N] " "$version"
27    read -r confirmation
28  
29    case "$confirmation" in
30      [Yy]*)
31        echo "Creating 'latest' symlink.."
32        ssh -i "$SSH_KEY" "$SSH_ADDRESS" ln -snf "$destination/$version" "$destination/latest" ;;
33      *)
34        echo "Operation aborted."
35        exit 1 ;;
36    esac
37    echo "Done."
38  }
39  
40  main "$@"