-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathmkrelease.sh
executable file
·97 lines (73 loc) · 2.68 KB
/
mkrelease.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
#!/bin/bash
## ANSI Colors (FG & BG)
RED="$(printf '\033[31m')" GREEN="$(printf '\033[32m')" YELLOW="$(printf '\033[33m')" BLUE="$(printf '\033[34m')"
MAGENTA="$(printf '\033[35m')" CYAN="$(printf '\033[36m')" WHITE="$(printf '\033[37m')" BLACK="$(printf '\033[30m')"
REDBG="$(printf '\033[41m')" GREENBG="$(printf '\033[42m')" YELLOWBG="$(printf '\033[43m')" BLUEBG="$(printf '\033[44m')"
MAGENTABG="$(printf '\033[45m')" CYANBG="$(printf '\033[46m')" WHITEBG="$(printf '\033[47m')" BLACKBG="$(printf '\033[40m')"
RESET="$(printf '\e[0m')"
## Globals
[[ -n $VERBOSE ]] && ERR_LOG="$(tty)"
print_status() {
echo "${YELLOW}[*] ${RESET}${1}"
}
print_warning() {
echo -n "${YELLOW}[!] ${RESET}${1}"
}
print_error() {
echo "${RED}[-] ${RESET}${1}"
}
print_fatal() {
echo -e "${RED}[!] $1\n${RESET}"
kill -10 $$
}
print_good() {
echo "${GREEN}[+] ${RESET}${1}"
}
print_verbose() {
if [[ -n "${VERBOSE}" ]]; then
echo "${WHITE}[*] ${RESET}${1}"
fi
}
must_exist() {
for i in "$@"; do
command -v "$i" >$ERR_LOG || print_fatal "$i not installed! Exiting..."
done
}
## Handle SININT
exit_on_signal_SIGINT () {
echo ""
print_fatal "Script interrupted!"
}
exit_on_signal_SIGTERM () {
echo ""
print_fatal "Script interrupted!"
}
trap exit_on_signal_SIGINT SIGINT
trap exit_on_signal_SIGTERM SIGTERM
RELEASE_DIR="$(pwd)/release"
ERR_LOG="/dev/null"
must_exist "grep" "cut" "tar" "sha1sum"
[[ ! -f ./Cargo.toml ]] && print_fatal "Cargo.toml not found!"
VERSION=$(grep "^version = " Cargo.toml|cut -d'"' -f2)
print_status "[$(date --rfc-3339=date)] Packaging new release for version $VERSION"
mkdir -p "$RELEASE_DIR" &> "$ERR_LOG"
tar czvf "$RELEASE_DIR/deoptimizer_linux_x86_64_v$VERSION.tar.gz"\
-C "./target/x86_64-unknown-linux-musl/release/"\
"deoptimizer" &> "$ERR_LOG" || print_fatal "Linux x86_64 release failed!"
tar czvf "$RELEASE_DIR/deoptimizer_linux_i686_v$VERSION.tar.gz"\
-C "./target/i686-unknown-linux-musl/release/"\
"deoptimizer" &> "$ERR_LOG" || print_fatal "Linux i686 release failed!"
tar czvf "$RELEASE_DIR/deoptimizer_linux_aarch64_v$VERSION.tar.gz"\
-C "./target/aarch64-unknown-linux-musl/release/"\
"deoptimizer" &> "$ERR_LOG" || print_fatal "Linux aarch64 release failed!"
tar czvf "$RELEASE_DIR/deoptimizer_windows_x86_64_v$VERSION.tar.gz"\
-C "./target/x86_64-pc-windows-gnu/release/"\
"deoptimizer.exe" &> "$ERR_LOG" || print_fatal "Windows x86_64 release failed!"
tar czvf "$RELEASE_DIR/deoptimizer_windows_i686_v$VERSION.tar.gz"\
-C "./target/i686-pc-windows-gnu/release/"\
"deoptimizer.exe" &> "$ERR_LOG" || print_fatal "Windows i686 release failed!"
print_good "All done!"
cd "$RELEASE_DIR" || exit
echo -e "\n\`\`\`"
sha1sum ./*
echo -e "\`\`\`\n"