mirror of
				https://github.com/go-task/task.git
				synced 2025-10-30 23:58:01 +02:00 
			
		
		
		
	Cosmetic changes
This commit is contained in:
		| @@ -8,6 +8,6 @@ It aims to be simpler and easier to use then [GNU Make][make]. | ||||
|  | ||||
| --- | ||||
|  | ||||
| See [taskfile.org](http://taskfile.org) for documentation. | ||||
| See [taskfile.org](https://taskfile.org) for documentation. | ||||
|  | ||||
| [make]: https://www.gnu.org/software/make/ | ||||
|   | ||||
| @@ -63,6 +63,7 @@ tasks: | ||||
|     desc: Generate install script using https://githbub.com/goreleaser/godownloader | ||||
|     cmds: | ||||
|       - godownloader --repo go-task/task -o install-task.sh | ||||
|       - cp ./install-task.sh ./docs/install.sh | ||||
|  | ||||
|   ci: | ||||
|     cmds: | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|     <meta charset="UTF-8"> | ||||
|     <title>Task</title> | ||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> | ||||
|     <meta name="description" content="Description"> | ||||
|     <meta name="description" content="A task runner / simpler Make alternative written in Go"> | ||||
|     <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> | ||||
|     <link rel="stylesheet" href="//unpkg.com/docsify-themeable/dist/css/theme-simple.css"> | ||||
|   </head> | ||||
|   | ||||
							
								
								
									
										390
									
								
								docs/install.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										390
									
								
								docs/install.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,390 @@ | ||||
| #!/bin/sh | ||||
| set -e | ||||
| # Code generated by godownloader on 2018-04-07T17:47:38Z. DO NOT EDIT. | ||||
| # | ||||
|  | ||||
| usage() { | ||||
|   this=$1 | ||||
|   cat <<EOF | ||||
| $this: download go binaries for go-task/task | ||||
|  | ||||
| Usage: $this [-b] bindir [-d] [tag] | ||||
|   -b sets bindir or installation directory, Defaults to ./bin | ||||
|   -d turns on debug logging | ||||
|    [tag] is a tag from | ||||
|    https://github.com/go-task/task/releases | ||||
|    If tag is missing, then the latest will be used. | ||||
|  | ||||
|  Generated by godownloader | ||||
|   https://github.com/goreleaser/godownloader | ||||
|  | ||||
| EOF | ||||
|   exit 2 | ||||
| } | ||||
|  | ||||
| parse_args() { | ||||
|   #BINDIR is ./bin unless set be ENV | ||||
|   # over-ridden by flag below | ||||
|  | ||||
|   BINDIR=${BINDIR:-./bin} | ||||
|   while getopts "b:dh?" arg; do | ||||
|     case "$arg" in | ||||
|       b) BINDIR="$OPTARG" ;; | ||||
|       d) log_set_priority 10 ;; | ||||
|       h | \?) usage "$0" ;; | ||||
|     esac | ||||
|   done | ||||
|   shift $((OPTIND - 1)) | ||||
|   TAG=$1 | ||||
| } | ||||
| # this function wraps all the destructive operations | ||||
| # if a curl|bash cuts off the end of the script due to | ||||
| # network, either nothing will happen or will syntax error | ||||
| # out preventing half-done work | ||||
| execute() { | ||||
|   tmpdir=$(mktmpdir) | ||||
|   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 | ||||
|     if [ "$OS" = "windows" ]; then | ||||
|       binexe="${binexe}.exe" | ||||
|     fi | ||||
|     install "${srcdir}/${binexe}" "${BINDIR}/" | ||||
|     log_info "installed ${BINDIR}/${binexe}" | ||||
|   done | ||||
| } | ||||
| 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 ;; | ||||
|   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 | ||||
|     log_info "checking GitHub for latest tag" | ||||
|   else | ||||
|     log_info "checking GitHub for tag '${TAG}'" | ||||
|   fi | ||||
|   REALTAG=$(github_release "$OWNER/$REPO" "${TAG}") && true | ||||
|   if test -z "$REALTAG"; then | ||||
|     log_crit "unable to find '${TAG}' - use 'latest' or see https://github.com/${PREFIX}/releases for details" | ||||
|     exit 1 | ||||
|   fi | ||||
|   # if version starts with 'v', remove it | ||||
|   TAG="$REALTAG" | ||||
|   VERSION=${TAG#v} | ||||
| } | ||||
| adjust_format() { | ||||
|   # change format (tar.gz or zip) based on ARCH | ||||
|   case ${ARCH} in | ||||
|     windows) FORMAT=zip ;; | ||||
|   esac | ||||
|   true | ||||
| } | ||||
| adjust_os() { | ||||
|   # adjust archive name based on OS | ||||
|   true | ||||
| } | ||||
| adjust_arch() { | ||||
|   # adjust archive name based on ARCH | ||||
|   true | ||||
| } | ||||
|  | ||||
| cat /dev/null <<EOF | ||||
| ------------------------------------------------------------------------ | ||||
| https://github.com/client9/shlib - portable posix shell functions | ||||
| Public domain - http://unlicense.org | ||||
| https://github.com/client9/shlib/blob/master/LICENSE.md | ||||
| but credit (and pull requests) appreciated. | ||||
| ------------------------------------------------------------------------ | ||||
| EOF | ||||
| is_command() { | ||||
|   command -v "$1" >/dev/null | ||||
| } | ||||
| echoerr() { | ||||
|   echo "$@" 1>&2 | ||||
| } | ||||
| log_prefix() { | ||||
|   echo "$0" | ||||
| } | ||||
| _logp=6 | ||||
| log_set_priority() { | ||||
|   _logp="$1" | ||||
| } | ||||
| log_priority() { | ||||
|   if test -z "$1"; then | ||||
|     echo "$_logp" | ||||
|     return | ||||
|   fi | ||||
|   [ "$1" -le "$_logp" ] | ||||
| } | ||||
| log_tag() { | ||||
|   case $1 in | ||||
|     0) echo "emerg" ;; | ||||
|     1) echo "alert" ;; | ||||
|     2) echo "crit" ;; | ||||
|     3) echo "err" ;; | ||||
|     4) echo "warning" ;; | ||||
|     5) echo "notice" ;; | ||||
|     6) echo "info" ;; | ||||
|     7) echo "debug" ;; | ||||
|     *) echo "$1" ;; | ||||
|   esac | ||||
| } | ||||
| log_debug() { | ||||
|   log_priority 7 || return 0 | ||||
|   echoerr "$(log_prefix)" "$(log_tag 7)" "$@" | ||||
| } | ||||
| log_info() { | ||||
|   log_priority 6 || return 0 | ||||
|   echoerr "$(log_prefix)" "$(log_tag 6)" "$@" | ||||
| } | ||||
| log_err() { | ||||
|   log_priority 3 || return 0 | ||||
|   echoerr "$(log_prefix)" "$(log_tag 3)" "$@" | ||||
| } | ||||
| log_crit() { | ||||
|   log_priority 2 || return 0 | ||||
|   echoerr "$(log_prefix)" "$(log_tag 2)" "$@" | ||||
| } | ||||
| uname_os() { | ||||
|   os=$(uname -s | tr '[:upper:]' '[:lower:]') | ||||
|   case "$os" in | ||||
|     msys_nt) os="windows" ;; | ||||
|   esac | ||||
|   echo "$os" | ||||
| } | ||||
| uname_arch() { | ||||
|   arch=$(uname -m) | ||||
|   case $arch in | ||||
|     x86_64) arch="amd64" ;; | ||||
|     x86) arch="386" ;; | ||||
|     i686) arch="386" ;; | ||||
|     i386) arch="386" ;; | ||||
|     aarch64) arch="arm64" ;; | ||||
|     armv5*) arch="arm5" ;; | ||||
|     armv6*) arch="arm6" ;; | ||||
|     armv7*) arch="arm7" ;; | ||||
|   esac | ||||
|   echo ${arch} | ||||
| } | ||||
| uname_os_check() { | ||||
|   os=$(uname_os) | ||||
|   case "$os" in | ||||
|     darwin) return 0 ;; | ||||
|     dragonfly) return 0 ;; | ||||
|     freebsd) return 0 ;; | ||||
|     linux) return 0 ;; | ||||
|     android) return 0 ;; | ||||
|     nacl) return 0 ;; | ||||
|     netbsd) return 0 ;; | ||||
|     openbsd) return 0 ;; | ||||
|     plan9) return 0 ;; | ||||
|     solaris) return 0 ;; | ||||
|     windows) return 0 ;; | ||||
|   esac | ||||
|   log_crit "uname_os_check '$(uname -s)' got converted to '$os' which is not a GOOS value. Please file bug at https://github.com/client9/shlib" | ||||
|   return 1 | ||||
| } | ||||
| uname_arch_check() { | ||||
|   arch=$(uname_arch) | ||||
|   case "$arch" in | ||||
|     386) return 0 ;; | ||||
|     amd64) return 0 ;; | ||||
|     arm64) return 0 ;; | ||||
|     armv5) return 0 ;; | ||||
|     armv6) return 0 ;; | ||||
|     armv7) return 0 ;; | ||||
|     ppc64) return 0 ;; | ||||
|     ppc64le) return 0 ;; | ||||
|     mips) return 0 ;; | ||||
|     mipsle) return 0 ;; | ||||
|     mips64) return 0 ;; | ||||
|     mips64le) return 0 ;; | ||||
|     s390x) return 0 ;; | ||||
|     amd64p32) return 0 ;; | ||||
|   esac | ||||
|   log_crit "uname_arch_check '$(uname -m)' got converted to '$arch' which is not a GOARCH value.  Please file bug report at https://github.com/client9/shlib" | ||||
|   return 1 | ||||
| } | ||||
| untar() { | ||||
|   tarball=$1 | ||||
|   case "${tarball}" in | ||||
|     *.tar.gz | *.tgz) tar -xzf "${tarball}" ;; | ||||
|     *.tar) tar -xf "${tarball}" ;; | ||||
|     *.zip) unzip "${tarball}" ;; | ||||
|     *) | ||||
|       log_err "untar unknown archive format for ${tarball}" | ||||
|       return 1 | ||||
|       ;; | ||||
|   esac | ||||
| } | ||||
| mktmpdir() { | ||||
|   test -z "$TMPDIR" && TMPDIR="$(mktemp -d)" | ||||
|   mkdir -p "${TMPDIR}" | ||||
|   echo "${TMPDIR}" | ||||
| } | ||||
| http_download_curl() { | ||||
|   local_file=$1 | ||||
|   source_url=$2 | ||||
|   header=$3 | ||||
|   if [ -z "$header" ]; then | ||||
|     code=$(curl -w '%{http_code}' -sL -o "$local_file" "$source_url") | ||||
|   else | ||||
|     code=$(curl -w '%{http_code}' -sL -H "$header" -o "$local_file" "$source_url") | ||||
|   fi | ||||
|   if [ "$code" != "200" ]; then | ||||
|     log_debug "http_download_curl received HTTP status $code" | ||||
|     return 1 | ||||
|   fi | ||||
|   return 0 | ||||
| } | ||||
| http_download_wget() { | ||||
|   local_file=$1 | ||||
|   source_url=$2 | ||||
|   header=$3 | ||||
|   if [ -z "$header" ]; then | ||||
|     wget -q -O "$local_file" "$source_url" | ||||
|   else | ||||
|     wget -q --header "$header" -O "$local_file" "$source_url" | ||||
|   fi | ||||
| } | ||||
| http_download() { | ||||
|   log_debug "http_download $2" | ||||
|   if is_command curl; then | ||||
|     http_download_curl "$@" | ||||
|     return | ||||
|   elif is_command wget; then | ||||
|     http_download_wget "$@" | ||||
|     return | ||||
|   fi | ||||
|   log_crit "http_download unable to find wget or curl" | ||||
|   return 1 | ||||
| } | ||||
| http_copy() { | ||||
|   tmp=$(mktemp) | ||||
|   http_download "${tmp}" "$1" "$2" || return 1 | ||||
|   body=$(cat "$tmp") | ||||
|   rm -f "${tmp}" | ||||
|   echo "$body" | ||||
| } | ||||
| github_release() { | ||||
|   owner_repo=$1 | ||||
|   version=$2 | ||||
|   test -z "$version" && version="latest" | ||||
|   giturl="https://github.com/${owner_repo}/releases/${version}" | ||||
|   json=$(http_copy "$giturl" "Accept:application/json") | ||||
|   test -z "$json" && return 1 | ||||
|   version=$(echo "$json" | tr -s '\n' ' ' | sed 's/.*"tag_name":"//' | sed 's/".*//') | ||||
|   test -z "$version" && return 1 | ||||
|   echo "$version" | ||||
| } | ||||
| hash_sha256() { | ||||
|   TARGET=${1:-/dev/stdin} | ||||
|   if is_command gsha256sum; then | ||||
|     hash=$(gsha256sum "$TARGET") || return 1 | ||||
|     echo "$hash" | cut -d ' ' -f 1 | ||||
|   elif is_command sha256sum; then | ||||
|     hash=$(sha256sum "$TARGET") || return 1 | ||||
|     echo "$hash" | cut -d ' ' -f 1 | ||||
|   elif is_command shasum; then | ||||
|     hash=$(shasum -a 256 "$TARGET" 2>/dev/null) || return 1 | ||||
|     echo "$hash" | cut -d ' ' -f 1 | ||||
|   elif is_command openssl; then | ||||
|     hash=$(openssl -dst openssl dgst -sha256 "$TARGET") || return 1 | ||||
|     echo "$hash" | cut -d ' ' -f a | ||||
|   else | ||||
|     log_crit "hash_sha256 unable to find command to compute sha-256 hash" | ||||
|     return 1 | ||||
|   fi | ||||
| } | ||||
| hash_sha256_verify() { | ||||
|   TARGET=$1 | ||||
|   checksums=$2 | ||||
|   if [ -z "$checksums" ]; then | ||||
|     log_err "hash_sha256_verify checksum file not specified in arg2" | ||||
|     return 1 | ||||
|   fi | ||||
|   BASENAME=${TARGET##*/} | ||||
|   want=$(grep "${BASENAME}" "${checksums}" 2>/dev/null | tr '\t' ' ' | cut -d ' ' -f 1) | ||||
|   if [ -z "$want" ]; then | ||||
|     log_err "hash_sha256_verify unable to find checksum for '${TARGET}' in '${checksums}'" | ||||
|     return 1 | ||||
|   fi | ||||
|   got=$(hash_sha256 "$TARGET") | ||||
|   if [ "$want" != "$got" ]; then | ||||
|     log_err "hash_sha256_verify checksum for '$TARGET' did not verify ${want} vs $got" | ||||
|     return 1 | ||||
|   fi | ||||
| } | ||||
| cat /dev/null <<EOF | ||||
| ------------------------------------------------------------------------ | ||||
| End of functions from https://github.com/client9/shlib | ||||
| ------------------------------------------------------------------------ | ||||
| EOF | ||||
|  | ||||
| PROJECT_NAME="task" | ||||
| OWNER=go-task | ||||
| REPO="task" | ||||
| BINARY=task | ||||
| FORMAT=tar.gz | ||||
| OS=$(uname_os) | ||||
| ARCH=$(uname_arch) | ||||
| PREFIX="$OWNER/$REPO" | ||||
|  | ||||
| # use in logging routines | ||||
| log_prefix() { | ||||
| 	echo "$PREFIX" | ||||
| } | ||||
| PLATFORM="${OS}/${ARCH}" | ||||
| GITHUB_DOWNLOAD=https://github.com/${OWNER}/${REPO}/releases/download | ||||
|  | ||||
| uname_os_check "$OS" | ||||
| uname_arch_check "$ARCH" | ||||
|  | ||||
| parse_args "$@" | ||||
|  | ||||
| check_platform | ||||
|  | ||||
| tag_to_version | ||||
|  | ||||
| adjust_format | ||||
|  | ||||
| adjust_os | ||||
|  | ||||
| adjust_arch | ||||
|  | ||||
| log_info "found version: ${VERSION} for ${TAG}/${OS}/${ARCH}" | ||||
|  | ||||
| NAME=${BINARY}_${OS}_${ARCH} | ||||
| TARBALL=${NAME}.${FORMAT} | ||||
| TARBALL_URL=${GITHUB_DOWNLOAD}/${TAG}/${TARBALL} | ||||
| CHECKSUM=task_checksums.txt | ||||
| CHECKSUM_URL=${GITHUB_DOWNLOAD}/${TAG}/${CHECKSUM} | ||||
|  | ||||
|  | ||||
| execute | ||||
| @@ -34,7 +34,7 @@ scanarios like CIs. Many thanks to [godownloader][godownloader] for easily | ||||
| generating this script. | ||||
|  | ||||
| ```bash | ||||
| curl -s https://raw.githubusercontent.com/go-task/task/master/install-task.sh | sh | ||||
| curl -s https://taskfile.org/install.sh | sh | ||||
| ``` | ||||
|  | ||||
| ## Binary | ||||
|   | ||||
		Reference in New Issue
	
	Block a user