This repository has been archived by the owner on Jan 14, 2022. It is now read-only.
/
godownloader-hugo.sh
122 lines (107 loc) · 2.64 KB
/
godownloader-hugo.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/sh
set -e
# Code generated by godownloader. DO NOT EDIT.
BINARY=hugo
FORMAT=tar.gz
OWNER=spf13
REPO=hugo
BINDIR=${BINDIR:-./bin}
VERSION=$1
if [ -z "${VERSION}" ]; then
echo ""
echo "$0: download go binaries for ${OWNER}/${REPO}"
echo ""
echo "Usage: $0 [version]"
echo " where [version] is 'latest' or a version number from"
echo " https://github.com/${OWNER}/${REPO}/releases"
echo ""
echo "Generated by godownloader"
echo " https://github.com/goreleaser/godownloader"
echo ""
exit 1
fi
# download dest source
# if dest is "-", then output to stdout
# if source is api.github.com add auth token
download() {
DEST=$1
SOURCE=$2
HEADER=""
case $SOURCE in
https://api.github.com*)
test -z "$GITHUB_TOKEN" || HEADER="Authorization: token $GITHUB_TOKEN"
;;
esac
if which curl > /dev/null; then
WGET="curl -sSL"
test -z "$GITHUB_TOKEN" || WGET="${WGET} -H \"${HEADER}\""
if [ "${DEST}" != "-" ]; then
WGET="$WGET -o $DEST"
fi
elif which wget > /dev/null; then
WGET="wget -q -O $DEST"
test -z "$GITHUB_TOKEN" || WGET="${WGET} --header \"${HEADER}\""
else
echo "Unable to find wget or curl. Exit"
exit 1
fi
${WGET} ${SOURCE}
}
if [ "${VERSION}" = "latest" ]; then
echo "Checking GitHub for latest version of ${OWNER}/${REPO}"
VERSION=$(download - https://api.github.com/repos/${OWNER}/${REPO}/releases/latest | grep -m 1 "\"name\":" | cut -d ":" -f 2 | tr -d ' ",')
if [ -z "${VERSION}" ]; then
echo "Unable to determine latest release for ${OWNER}/${REPO}"
exit 1
fi
fi
# if version starts with 'v', remove it
VERSION=${VERSION#v}
OS=$(uname -s)
ARCH=$(uname -m)
# change format (tar.gz or zip) based on ARCH
case ${ARCH} in
Windows) FORMAT=zip ;;
esac
# adjust archive name based on OS
case ${OS} in
Darwin) OS=macOS ;;
arm) OS=ARM ;;
arm64) OS=ARM64 ;;
dragonfly) OS=DragonFlyBSD ;;
i386) OS=32bit ;;
x86_64) OS=64bit ;;
esac
# adjust archive name based on ARCH
case ${ARCH} in
Darwin) ARCH=macOS ;;
arm) ARCH=ARM ;;
arm64) ARCH=ARM64 ;;
dragonfly) ARCH=DragonFlyBSD ;;
i386) ARCH=32bit ;;
x86_64) ARCH=64bit ;;
esac
NAME=${BINARY}_${VERSION}_${OS}-${ARCH}
TARBALL=${NAME}.${FORMAT}
URL=https://github.com/${OWNER}/${REPO}/releases/download/v${VERSION}/${TARBALL}
# Destructive operations start here
#
#
test -z "$TMPDIR" && TMPDIR="$(mktemp -d)"
mkdir -p ${TMPDIR}
rm -f ${TMPDIR}/${TARBALL}
download ${TMPDIR}/${TARBALL} ${URL}
case ${FORMAT} in
tar.gz)
tar -C ${TMPDIR} -xzf ${TMPDIR}/${TARBALL}
;;
zip)
(cd ${TMPDIR} && unzip ${TARBALL})
;;
*)
echo "unknown format '${FORMAT}' - exiting"
exit 1
;;
esac
install -d ${BINDIR}
install ${TMPDIR}/${BINARY} ${BINDIR}/