Skip to content

Instantly share code, notes, and snippets.

@jeffque
Last active April 9, 2019 20:38
Show Gist options
  • Save jeffque/057e5abfd27bef4c73e47fb0ba5f58d3 to your computer and use it in GitHub Desktop.
Save jeffque/057e5abfd27bef4c73e47fb0ba5f58d3 to your computer and use it in GitHub Desktop.
Script para baixar o TotalCross
#!/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