From 09441c67ddf706a063ee753cc2fe0eead74ae6be Mon Sep 17 00:00:00 2001 From: shengxiang Date: Sun, 13 Aug 2017 10:27:54 +0800 Subject: [PATCH] make install support install from curl --- README.md | 10 +- build.sh | 2 - deploy.sh | 21 ---- equinox.key.enc | Bin 304 -> 0 bytes equinox.pub | 5 - get.sh | 308 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 317 insertions(+), 29 deletions(-) delete mode 100755 build.sh delete mode 100755 deploy.sh delete mode 100644 equinox.key.enc delete mode 100644 equinox.pub create mode 100644 get.sh diff --git a/README.md b/README.md index 7772c18..365f4b9 100644 --- a/README.md +++ b/README.md @@ -40,9 +40,17 @@ Go version at least `1.6+` ## Installation ### Binaries +The fastest way is run with. Default install location is `/usr/local/bin` + +``` +curl https://raw.githubusercontent.com/codeskyblue/gosuv/master/get.sh | bash +``` + +Or just download binaries + -Thanks to [goreleaser](https://github.com/goreleaser/goreleaser) which makes publish binary automatic. +Thanks to [goreleaser](https://github.com/goreleaser/goreleaser) which makes publish binaries automaticly. ### Build from source ```sh diff --git a/build.sh b/build.sh deleted file mode 100755 index 59fdb8a..0000000 --- a/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash - -go build && ./gosuv start-server -f diff --git a/deploy.sh b/deploy.sh deleted file mode 100755 index 6baf3e0..0000000 --- a/deploy.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -# -# https://equinox.io/docs/continuous-deployment/travis-ci - -set -eu -o pipefail - -# Download and unpack the most recent Equinox release tool -wget https://bin.equinox.io/c/mBWdkfai63v/release-tool-stable-linux-amd64.tgz -tar -vxf release-tool-stable-linux-amd64.tgz - -VER=$(git describe --tags --dirty --always) -echo "VER: $VER" - -./equinox release \ - --channel="stable" \ - --version="$VER" \ - --app="app_8Gji4eEAdDx" \ - --platforms="darwin_amd64 linux_amd64 linux_arm" \ - --signing-key="equinox.key" \ - --token="$EQUINOX_API_TOKEN" \ - -- -tags vfs -ldflags "-X main.Version=$VER" diff --git a/equinox.key.enc b/equinox.key.enc deleted file mode 100644 index b3057c4b49cfbc03121c66554b551ecba7fe8264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh$d>AvIRFQ(42$#l{TEc*(-~eR$6_;_r8M*n}BA)TlB_{oY zwS($mesXkg*~=Yq{(Ot}k}vwJK*BF~Q|;|r@q0CxWEE^aOX~Z09fb18o1CrhTaF2u z9pgc{`Hr%mcY6*Kao=D?0Q)A^TVl7zNcdRoLD^ND^X+5q1+nw7O-R&EDHG{>u6NN2 Cmz?JS diff --git a/equinox.pub b/equinox.pub deleted file mode 100644 index d24df2c..0000000 --- a/equinox.pub +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN ECDSA PUBLIC KEY----- -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEY8xsSkcFs8XXUicw3n7E77qN/vqKUQ/6 -/X5aBiOVF1yTIRYRXrV3aEvJRzErvQxziT9cLxQq+BFUZqn9pISnPSf9dn0wf9kU -TxI79zIvne9UT/rDsM0BxSydwtjG00MT ------END ECDSA PUBLIC KEY----- diff --git a/get.sh b/get.sh new file mode 100644 index 0000000..5147aff --- /dev/null +++ b/get.sh @@ -0,0 +1,308 @@ +#!/bin/sh +set -e +# Code generated by godownloader. DO NOT EDIT. +# + +usage() { + this=$1 + cat </dev/null +} +uname_os() { + os=$(uname -s | tr '[:upper:]' '[:lower:]') + 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 + echo "$0: uname_os_check: internal error '$(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 + echo "$0: uname_arch_check: internal error '$(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}" ;; + *) + echo "Unknown archive format for ${tarball}" + return 1 + ;; + esac +} +mktmpdir() { + test -z "$TMPDIR" && TMPDIR="$(mktemp -d)" + mkdir -p "${TMPDIR}" + echo "${TMPDIR}" +} +http_download() { + local_file=$1 + source_url=$2 + header=$3 + headerflag='' + destflag='' + if is_command curl; then + cmd='curl --fail -sSL' + destflag='-o' + headerflag='-H' + elif is_command wget; then + cmd='wget -q' + destflag='-O' + headerflag='--header' + else + echo "http_download: unable to find wget or curl" + return 1 + fi + if [ -z "$header" ]; then + $cmd $destflag "$local_file" "$source_url" + else + $cmd $headerflag "$header" $destflag "$local_file" "$source_url" + fi +} +github_api() { + local_file=$1 + source_url=$2 + header="" + case "$source_url" in + https://api.github.com*) + test -z "$GITHUB_TOKEN" || header="Authorization: token $GITHUB_TOKEN" + ;; + esac + http_download "$local_file" "$source_url" "$header" +} +github_last_release() { + owner_repo=$1 + giturl="https://api.github.com/repos/${owner_repo}/releases/latest" + html=$(github_api - "$giturl") + version=$(echo "$html" | grep -m 1 "\"tag_name\":" | cut -f4 -d'"') + 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 + echo "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 + echo "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 + echo "hash_sha256_verify: unable to find checksum for '${TARGET}' in '${checksums}'" + return 1 + fi + got=$(hash_sha256 "$TARGET") + if [ "$want" != "$got" ]; then + echo "hash_sha256_verify: checksum for '$TARGET' did not verify ${want} vs $got" + return 1 + fi +} +cat /dev/null <