Last active
April 9, 2019 20:38
-
-
Save jeffque/057e5abfd27bef4c73e47fb0ba5f58d3 to your computer and use it in GitHub Desktop.
Script para baixar o TotalCross
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
detect-version() { | |
informed_version="$1" | |
desired_version="$1" | |
case "$desired_version" in | |
*-SNAPSHOT) | |
desired_version=`curl -s https://maven.totalcross.com/artifactory/repo1/com/totalcross/totalcross-sdk/${informed_version}/maven-metadata.xml | | |
grep value | | |
head -n1 | | |
sed -E 's/^.*>([^<]*)<.*$/\1/'` | |
;; | |
esac | |
echo $desired_version | |
} | |
get-major-minor() { | |
sed -E 's/^([^.*]\.[^.]*)\..*$/\1/' <<<"$1" | |
} | |
amazon-tc-url() { | |
version="$1" | |
major_minor=`get-major-minor "$version"` | |
amazon_base=https://s3-us-west-2.amazonaws.com/totalcross-release | |
amazon_defacto=${amazon_base}/${major_minor}/TotalCross-${version}.zip | |
echo $amazon_defacto | |
} | |
show-help() { | |
cat <<EOH | |
$0: faz o download do zip da versão do TotalCross e o explode | |
Depende da variável de ambiente \$TC_VERSION | |
Opções de linha de comando: | |
--h|--help Exibe esta mensagem | |
--tc-version=TC_VERSION Indica no argumento seguinte qual o valor de | |
\$TC_VERSION a ser levado em consideração | |
--output=ZIP_PATH | |
-o ZIP_PATH Salva o zip no caminho passado; o padrão é | |
./tc-\$TC_VERSION.zip | |
--verbose Entra em modo verboso; o padrão é silencioso | |
No modo verboso, o download é exibido como | |
barra do CURL | |
--extract-dir=EXPLODE_DIR Diretório onde o zip baixado será explodido | |
O padrão é ./tc-\$TC_VERSION | |
--no-explode Não descompacta o ZIP baixado. O padrão é | |
decompactar | |
--complete-extract Faz a decompactação completa. O padrão é | |
apenas 'TotalCross*/dist' e 'TotalCross*/etc/' | |
EOH | |
} | |
CURL_OPTIONS="-s" | |
VERBOSE=false | |
EXPLODE=true | |
DO_COMPLETE_EXTRACT=false | |
while [ $# -gt 0 ]; do | |
case "$1" in | |
--help|-h) | |
show-help | |
exit | |
;; | |
--tc-version) | |
shift | |
export TC_VERSION="$1" | |
;; | |
--tc-version=*) | |
export TC_VERSION="${1#--tc-version=}" | |
;; | |
-o|--output) | |
shift | |
ZIP_PATH="$1" | |
;; | |
--output=*) | |
ZIP_PATH="${1#--output=}" | |
;; | |
--verbose) | |
CURL_OPTIONS="-#" | |
VERBOSE=true | |
;; | |
--no-explode) | |
EXPLODE=false | |
;; | |
--extract-dir=*) | |
EXPLODE_DIR="${1#--extract-dir=}" | |
;; | |
--extract-dir) | |
shift | |
EXPLODE_DIR="$1" | |
;; | |
--complete-extract) | |
DO_COMPLETE_EXTRACT=true | |
;; | |
esac | |
shift | |
done | |
if [ "z${TC_VERSION}" = z ]; then | |
echo "Variável de ambiente TC_VERSION não definida, abortando" >&2 | |
exit 1 | |
fi | |
if [ "z$ZIP_PATH" = z ]; then | |
ZIP_PATH=./tc-$TC_VERSION.zip | |
fi | |
if [ "z$EXPLODE_DIR" = z ]; then | |
EXPLODE_DIR=./tc-$TC_VERSION/ | |
fi | |
if [ ! -d "$EXPLODE_DIR" ]; then | |
mkdir -p "$EXPLODE_DIR" | |
fi | |
if $EXPLODE; then | |
UNZIP_ARGS=" -n `$VERBOSE || echo -qq` $ZIP_PATH -d $EXPLODE_DIR " | |
if ! $DO_COMPLETE_EXTRACT; then | |
UNZIP_ARGS+=" TotalCross*/dist/** TotalCross*/etc/**" | |
fi | |
fi | |
version=`detect-version "$TC_VERSION"` | |
$VERBOSE && echo "Versão a fazer download $version, de $TC_VERSION" | |
URL_AMAZON=`amazon-tc-url $version` | |
$VERBOSE && echo "URL de download: $URL_AMAZON, salvando em $ZIP_PATH" | |
curl $CURL_OPTIONS "$URL_AMAZON" > "$ZIP_PATH" | |
$EXPLODE && ( $VERBOSE && echo "unzip $UNZIP_ARGS"; unzip $UNZIP_ARGS; ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment