diff --git a/install.sh b/install.sh new file mode 100755 index 0000000000000000000000000000000000000000..0f2a19b42882cc52e6fcfb7b1ce13be65b0d11e1 --- /dev/null +++ b/install.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +{ # this ensures the entire script is downloaded # + +is_installed() { + type "$1" > /dev/null 2>&1 +} + +if [ "_$1" != "_" ]; then + CESIUM_DIR="$1" +fi +if [ -z "$CESIUM_DIR" ]; then + DIRNAME=`pwd` + CESIUM_DIR="$DIRNAME/cesium" +fi + +latest_version() { + echo "0.2.5" +} + +api_release_url() { + echo "https://api.github.com/repos/duniter/cesium/releases/tags/v$(latest_version)" +} + +download() { + if is_installed "curl"; then + curl -qkL $* + elif is_installed "wget"; then + # Emulate curl with wget + ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/-L //' \ + -e 's/-I /--server-response /' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') + wget $ARGS + fi +} + +install_from_github() { + + local RELEASE=`curl -XGET -i $(api_release_url)` + local CESIUM_URL=`echo "$RELEASE" | grep -P "\"browser_download_url\": \"[^\"]+" | grep -oP "https://[a-zA-Z0-9/.-]+-web.zip"` + local CESIUM_ARCHIVE=$CESIUM_DIR/cesium.zip + if [ -d "$CESIUM_DIR" ]; then + if [ -f "$CESIUM_ARCHIVE" ]; then + echo "WARNING: Deleting existing file: $CESIUM_ARCHIVE" + rm $CESIUM_ARCHIVE + fi + else + mkdir -p "$CESIUM_DIR" + fi + + echo "=> Downloading Cesium from $CESIUM_URL" + echo " to $CESIUM_ARCHIVE" + download "$CESIUM_URL" -o "$CESIUM_ARCHIVE" || { + echo >&2 "Failed to download '$CESIUM_URL'" + return 4 + } + echo "=> Unarchive to $CESIUM_DIR" + unzip $CESIUM_ARCHIVE -d $CESIUM_DIR + rm $CESIUM_ARCHIVE + + echo + + echo "Cesium successfully installed at $CESIUM_DIR" +} + +do_install() { + + if ! is_installed "curl"; then + echo "=> curl is not available. You will likely need to install 'curl' package." + exit 1 + fi + if ! is_installed "unzip"; then + echo "=> unzip is not available. You will likely need to install 'unzip' package." + exit 1 + fi + + install_from_github +} + +# +# Unsets the various functions defined +# during the execution of the install script +# +reset() { + unset -f reset is_installed latest_version \ + download install_from_github do_install +} + + +[ "_$CESIUM_ENV" = "_testing" ] || do_install $1 + +} # this ensures the entire script is downloaded # diff --git a/release.sh b/release.sh index 7cde58ca8d2fab0dcacac00a1428277c21904cf6..beedca7eac5b43cccfecfbd57688c7c5f880a636 100755 --- a/release.sh +++ b/release.sh @@ -24,6 +24,9 @@ if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ && $3 =~ ^[0-9]+$ ]]; then sed -i "s/version\": \"$current/version\": \"$2/g" package.json sed -i "s/ version=\".*\"/ version=\"$2\"/g" config.xml sed -i "s/ android-versionCode=\".*\"/ android-versionCode=\"$3\"/g" config.xml + + # Bump the install.sh + sed -i "s/echo \"v$current\"/echo \"v$2\"/g" install.sh ;; *) echo "No task given" @@ -35,7 +38,7 @@ if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ && $3 =~ ^[0-9]+$ ]]; then # Commit git reset HEAD - git add package.json config.xml + git add package.json config.xml install.sh git commit -m "v$2" git tag "v$2" git push @@ -46,13 +49,7 @@ if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ && $3 =~ ^[0-9]+$ ]]; then gulp build:web --release echo "**********************************" - echo "* Build release $2 succeed !" - echo "* " - echo "* " - echo "* Now please deploy files to github using:" - echo "* " - echo "* > ./github.sh pre|rel user:pwd" - echo "* " + echo "* Build release $2 sucees !" echo "**********************************" else echo "Wrong version format"