-
-
Notifications
You must be signed in to change notification settings - Fork 482
/
Copy pathinstall.sh
104 lines (93 loc) · 2.09 KB
/
install.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
#!/usr/bin/env bash
OWNER="iyear"
REPO="tdl"
LOCATION="/usr/local/bin"
echo_green() {
echo -e "\033[32m$1\033[0m"
}
echo_red() {
echo -e "\033[31m$1\033[0m"
}
echo_blue() {
echo -e "\033[34m$1\033[0m"
}
# Check if script is run as root
if [[ $EUID -ne 0 ]]; then
echo_red "This script must be run as root"
exit 1
fi
PROXY=""
VERSION=""
# flags: --proxy --version
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
--proxy)
PROXY="https://mirror.ghproxy.com/"
echo_blue "Using GitHub proxy: $PROXY"
shift
;;
--version)
VERSION="$2"
shift
shift
;;
*)
echo "Unknown flag: $key"
exit 1
;;
esac
done
# Set OS based on system
case $(uname -s) in
Linux)
OS="Linux"
;;
Darwin)
OS="MacOS"
;;
*)
echo "Unsupported OS: $OS"
exit 1
;;
esac
# Set download ARCH based on system architecture
case $(uname -m) in
x86_64)
ARCH="64bit"
;;
i686)
ARCH="32bit"
;;
armv5*)
ARCH="armv5"
;;
armv6*)
ARCH="armv6"
;;
armv7*)
ARCH="armv7"
;;
arm64|aarch64*)
ARCH="arm64"
;;
*)
echo "Unsupported architecture: $ARCH"
exit 1
;;
esac
# get latest version
if [ -z "$VERSION" ]; then
VERSION=$(curl --silent "https://api.github.com/repos/$OWNER/$REPO/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
fi
echo_blue "Target version: $VERSION"
# build download URL
URL=${PROXY}https://github.com/$OWNER/$REPO/releases/download/$VERSION/${REPO}_${OS}_$ARCH.tar.gz
echo_blue "Downloading $REPO from $URL"
# download and extract
wget -q --show-progress -O - "$URL" | tar -xz && \
mv $REPO $LOCATION/$REPO && \
chmod +x $LOCATION/$REPO && \
echo_green "$REPO installed successfully! Location: $LOCATION/$REPO" && \
echo_green "Run '$REPO' to get started" && \
echo_green "To get started with tdl, please visit https://docs.iyear.me/tdl"