From 1107f691ea793407fa06f0431b4621cdca7f141e Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Tue, 12 Jan 2021 10:43:45 -0300 Subject: [PATCH] Update install script Closes #428 Co-authored-by: odidev --- docs/install.sh | 77 ++++++++++++++++++++++--------------------------- install-task.sh | 77 ++++++++++++++++++++++--------------------------- 2 files changed, 70 insertions(+), 84 deletions(-) diff --git a/docs/install.sh b/docs/install.sh index c101ee5d..5b488b0e 100755 --- a/docs/install.sh +++ b/docs/install.sh @@ -1,6 +1,6 @@ #!/bin/sh set -e -# Code generated by godownloader on 2018-04-07T17:47:38Z. DO NOT EDIT. +# Code generated by godownloader on 2021-01-12T13:40:40Z. DO NOT EDIT. # usage() { @@ -27,11 +27,12 @@ parse_args() { # over-ridden by flag below BINDIR=${BINDIR:-./bin} - while getopts "b:dh?" arg; do + while getopts "b:dh?x" arg; do case "$arg" in b) BINDIR="$OPTARG" ;; d) log_set_priority 10 ;; h | \?) usage "$0" ;; + x) set -x ;; esac done shift $((OPTIND - 1)) @@ -42,46 +43,41 @@ parse_args() { # network, either nothing will happen or will syntax error # out preventing half-done work execute() { - tmpdir=$(mktmpdir) + tmpdir=$(mktemp -d) log_debug "downloading files into ${tmpdir}" http_download "${tmpdir}/${TARBALL}" "${TARBALL_URL}" http_download "${tmpdir}/${CHECKSUM}" "${CHECKSUM_URL}" hash_sha256_verify "${tmpdir}/${TARBALL}" "${tmpdir}/${CHECKSUM}" srcdir="${tmpdir}" (cd "${tmpdir}" && untar "${TARBALL}") - install -d "${BINDIR}" - for binexe in "task" ; do + test ! -d "${BINDIR}" && install -d "${BINDIR}" + for binexe in $BINARIES; do if [ "$OS" = "windows" ]; then binexe="${binexe}.exe" fi install "${srcdir}/${binexe}" "${BINDIR}/" log_info "installed ${BINDIR}/${binexe}" done + rm -rf "${tmpdir}" } -is_supported_platform() { - platform=$1 - found=1 - case "$platform" in - windows/386) found=0 ;; - windows/amd64) found=0 ;; - darwin/386) found=0 ;; - darwin/amd64) found=0 ;; - linux/386) found=0 ;; - linux/amd64) found=0 ;; +get_binaries() { + case "$PLATFORM" in + darwin/amd64) BINARIES="task" ;; + darwin/arm64) BINARIES="task" ;; + darwin/armv6) BINARIES="task" ;; + linux/386) BINARIES="task" ;; + linux/amd64) BINARIES="task" ;; + linux/arm64) BINARIES="task" ;; + linux/armv6) BINARIES="task" ;; + windows/386) BINARIES="task" ;; + windows/amd64) BINARIES="task" ;; + windows/arm64) BINARIES="task" ;; + windows/armv6) BINARIES="task" ;; + *) + log_crit "platform $PLATFORM is not supported. Make sure this script is up-to-date and file request at https://github.com/${PREFIX}/issues/new" + exit 1 + ;; esac - case "$platform" in - darwin/386) found=1 ;; - esac - return $found -} -check_platform() { - if is_supported_platform "$PLATFORM"; then - # optional logging goes here - true - else - log_crit "platform $PLATFORM is not supported. Make sure this script is up-to-date and file request at https://github.com/${PREFIX}/issues/new" - exit 1 - fi } tag_to_version() { if [ -z "${TAG}" ]; then @@ -99,8 +95,8 @@ tag_to_version() { VERSION=${TAG#v} } adjust_format() { - # change format (tar.gz or zip) based on ARCH - case ${ARCH} in + # change format (tar.gz or zip) based on OS + case ${OS} in windows) FORMAT=zip ;; esac true @@ -174,7 +170,9 @@ log_crit() { uname_os() { os=$(uname -s | tr '[:upper:]' '[:lower:]') case "$os" in - msys_nt) os="windows" ;; + cygwin_nt*) os="windows" ;; + mingw*) os="windows" ;; + msys_nt*) os="windows" ;; esac echo "$os" } @@ -186,9 +184,9 @@ uname_arch() { i686) arch="386" ;; i386) arch="386" ;; aarch64) arch="arm64" ;; - armv5*) arch="arm5" ;; - armv6*) arch="arm6" ;; - armv7*) arch="arm7" ;; + armv5*) arch="armv5" ;; + armv6*) arch="armv6" ;; + armv7*) arch="armv7" ;; esac echo ${arch} } @@ -234,8 +232,8 @@ uname_arch_check() { untar() { tarball=$1 case "${tarball}" in - *.tar.gz | *.tgz) tar -xzf "${tarball}" ;; - *.tar) tar -xf "${tarball}" ;; + *.tar.gz | *.tgz) tar --no-same-owner -xzf "${tarball}" ;; + *.tar) tar --no-same-owner -xf "${tarball}" ;; *.zip) unzip "${tarball}" ;; *) log_err "untar unknown archive format for ${tarball}" @@ -243,11 +241,6 @@ untar() { ;; esac } -mktmpdir() { - test -z "$TMPDIR" && TMPDIR="$(mktemp -d)" - mkdir -p "${TMPDIR}" - echo "${TMPDIR}" -} http_download_curl() { local_file=$1 source_url=$2 @@ -368,7 +361,7 @@ uname_arch_check "$ARCH" parse_args "$@" -check_platform +get_binaries tag_to_version diff --git a/install-task.sh b/install-task.sh index c101ee5d..5b488b0e 100755 --- a/install-task.sh +++ b/install-task.sh @@ -1,6 +1,6 @@ #!/bin/sh set -e -# Code generated by godownloader on 2018-04-07T17:47:38Z. DO NOT EDIT. +# Code generated by godownloader on 2021-01-12T13:40:40Z. DO NOT EDIT. # usage() { @@ -27,11 +27,12 @@ parse_args() { # over-ridden by flag below BINDIR=${BINDIR:-./bin} - while getopts "b:dh?" arg; do + while getopts "b:dh?x" arg; do case "$arg" in b) BINDIR="$OPTARG" ;; d) log_set_priority 10 ;; h | \?) usage "$0" ;; + x) set -x ;; esac done shift $((OPTIND - 1)) @@ -42,46 +43,41 @@ parse_args() { # network, either nothing will happen or will syntax error # out preventing half-done work execute() { - tmpdir=$(mktmpdir) + tmpdir=$(mktemp -d) log_debug "downloading files into ${tmpdir}" http_download "${tmpdir}/${TARBALL}" "${TARBALL_URL}" http_download "${tmpdir}/${CHECKSUM}" "${CHECKSUM_URL}" hash_sha256_verify "${tmpdir}/${TARBALL}" "${tmpdir}/${CHECKSUM}" srcdir="${tmpdir}" (cd "${tmpdir}" && untar "${TARBALL}") - install -d "${BINDIR}" - for binexe in "task" ; do + test ! -d "${BINDIR}" && install -d "${BINDIR}" + for binexe in $BINARIES; do if [ "$OS" = "windows" ]; then binexe="${binexe}.exe" fi install "${srcdir}/${binexe}" "${BINDIR}/" log_info "installed ${BINDIR}/${binexe}" done + rm -rf "${tmpdir}" } -is_supported_platform() { - platform=$1 - found=1 - case "$platform" in - windows/386) found=0 ;; - windows/amd64) found=0 ;; - darwin/386) found=0 ;; - darwin/amd64) found=0 ;; - linux/386) found=0 ;; - linux/amd64) found=0 ;; +get_binaries() { + case "$PLATFORM" in + darwin/amd64) BINARIES="task" ;; + darwin/arm64) BINARIES="task" ;; + darwin/armv6) BINARIES="task" ;; + linux/386) BINARIES="task" ;; + linux/amd64) BINARIES="task" ;; + linux/arm64) BINARIES="task" ;; + linux/armv6) BINARIES="task" ;; + windows/386) BINARIES="task" ;; + windows/amd64) BINARIES="task" ;; + windows/arm64) BINARIES="task" ;; + windows/armv6) BINARIES="task" ;; + *) + log_crit "platform $PLATFORM is not supported. Make sure this script is up-to-date and file request at https://github.com/${PREFIX}/issues/new" + exit 1 + ;; esac - case "$platform" in - darwin/386) found=1 ;; - esac - return $found -} -check_platform() { - if is_supported_platform "$PLATFORM"; then - # optional logging goes here - true - else - log_crit "platform $PLATFORM is not supported. Make sure this script is up-to-date and file request at https://github.com/${PREFIX}/issues/new" - exit 1 - fi } tag_to_version() { if [ -z "${TAG}" ]; then @@ -99,8 +95,8 @@ tag_to_version() { VERSION=${TAG#v} } adjust_format() { - # change format (tar.gz or zip) based on ARCH - case ${ARCH} in + # change format (tar.gz or zip) based on OS + case ${OS} in windows) FORMAT=zip ;; esac true @@ -174,7 +170,9 @@ log_crit() { uname_os() { os=$(uname -s | tr '[:upper:]' '[:lower:]') case "$os" in - msys_nt) os="windows" ;; + cygwin_nt*) os="windows" ;; + mingw*) os="windows" ;; + msys_nt*) os="windows" ;; esac echo "$os" } @@ -186,9 +184,9 @@ uname_arch() { i686) arch="386" ;; i386) arch="386" ;; aarch64) arch="arm64" ;; - armv5*) arch="arm5" ;; - armv6*) arch="arm6" ;; - armv7*) arch="arm7" ;; + armv5*) arch="armv5" ;; + armv6*) arch="armv6" ;; + armv7*) arch="armv7" ;; esac echo ${arch} } @@ -234,8 +232,8 @@ uname_arch_check() { untar() { tarball=$1 case "${tarball}" in - *.tar.gz | *.tgz) tar -xzf "${tarball}" ;; - *.tar) tar -xf "${tarball}" ;; + *.tar.gz | *.tgz) tar --no-same-owner -xzf "${tarball}" ;; + *.tar) tar --no-same-owner -xf "${tarball}" ;; *.zip) unzip "${tarball}" ;; *) log_err "untar unknown archive format for ${tarball}" @@ -243,11 +241,6 @@ untar() { ;; esac } -mktmpdir() { - test -z "$TMPDIR" && TMPDIR="$(mktemp -d)" - mkdir -p "${TMPDIR}" - echo "${TMPDIR}" -} http_download_curl() { local_file=$1 source_url=$2 @@ -368,7 +361,7 @@ uname_arch_check "$ARCH" parse_args "$@" -check_platform +get_binaries tag_to_version