@@ -8,16 +8,74 @@ WARNING=$(tput setaf 3)
8
8
INFO=$( tput setaf 6)
9
9
RESET=$( tput sgr0)
10
10
11
+ # Params
12
+
13
+ BUILD_BINARY=" n"
14
+
11
15
# Vars
12
16
13
17
REPO_URL=" https://github.com/DavidGomesDev/RustyController"
14
18
RUSTY_HOME_DIR=" $HOME /RustyController"
15
19
BINARY_PATH=" $RUSTY_HOME_DIR /server/target/release/rusty_controller"
16
20
HASH_FILE=" $RUSTY_HOME_DIR /current.sha256"
17
21
22
+ # Get params
23
+
24
+ show_usage () {
25
+ echo " Parameters:"
26
+ echo " -b: build binary (instead of downloading the latest release)"
27
+ }
28
+
29
+ while getopts " bh" opt; do
30
+ case ${opt} in
31
+ b)
32
+ BUILD_BINARY=" y"
33
+ ;;
34
+ h)
35
+ show_usage
36
+ exit 0
37
+ ;;
38
+ ? )
39
+ echo " Invalid option: -${OPTARG} ."
40
+ show_usage
41
+ exit 1
42
+ ;;
43
+ esac
44
+ done
45
+
46
+ echo " $START * Updating server$RESET "
47
+
18
48
cd " $HOME " || exit 1
19
49
50
+ download_latest () {
51
+ # Get arch (and trim output)
52
+ arch=$( dpkg --print-architecture | xargs echo -n)
53
+
54
+ mkdir -p target/release || exit 1
55
+ wget -q " $REPO_URL /releases/download/latest/server-$arch " -O target/release/rusty_controller || exit 1
56
+
57
+ echo " $INFO * Downloaded latest release binary!$RESET "
58
+ }
59
+
20
60
build () {
61
+ echo
62
+ echo " $INFO * Updating crates...$RESET "
63
+ echo
64
+
65
+ cargo update -q || exit 1
66
+
67
+ echo " $INFO * Build...$RESET "
68
+ echo
69
+
70
+ time cargo build --release -q || exit 1
71
+
72
+ newest_hash=$( sha256sum " $BINARY_PATH " | gawk ' {print $1}' )
73
+
74
+ echo " $newest_hash " > " $HASH_FILE "
75
+ echo " $SUCCESS * Built successfully!$RESET "
76
+ }
77
+
78
+ update () {
21
79
echo " $INFO * Checking out main...$RESET "
22
80
echo
23
81
@@ -30,21 +88,12 @@ build () {
30
88
31
89
cd server/ || exit 1
32
90
33
- echo
34
- echo " $INFO * Updating crates...$RESET "
35
- echo
36
-
37
- cargo update -q || exit 1
38
-
39
- echo " $INFO * Build...$RESET "
40
- echo
41
-
42
- time cargo build --release -q || exit 1
43
-
44
- newest_hash=$( sha256sum " $BINARY_PATH " | gawk ' {print $1}' )
91
+ if [[ " $BUILD_BINARY " == " y" ]]; then
92
+ build
93
+ else
94
+ download_latest
95
+ fi
45
96
46
- echo " $newest_hash " > " $HASH_FILE "
47
- echo " $SUCCESS * Built successfully!$RESET "
48
97
cd ..
49
98
}
50
99
@@ -54,10 +103,10 @@ launch () {
54
103
}
55
104
56
105
if [[ ! -d " $RUSTY_HOME_DIR " ]]; then
57
- echo " $WARNING * Rusty not found. Cloning...$RESET "
106
+ echo " $WARNING * Rusty repo not found. Cloning...$RESET "
58
107
git clone " $REPO_URL "
59
108
60
- build
109
+ update
61
110
launch
62
111
exit 0
63
112
fi
@@ -67,13 +116,13 @@ cd "$RUSTY_HOME_DIR" || exit 1
67
116
if [[ -f " $HASH_FILE " ]]; then
68
117
if [ ! -f " $BINARY_PATH " ]; then
69
118
echo " $INFO * Binary not found, building...$RESET "
70
- build
119
+ update
71
120
launch
72
121
exit 0
73
122
fi
74
123
75
124
current_hash=$( cat " $HASH_FILE " )
76
- build
125
+ update
77
126
if [[ " $current_hash " != " $newest_hash " ]]; then
78
127
echo " $INFO * Built a new version!$RESET "
79
128
launch
@@ -82,6 +131,6 @@ if [[ -f "$HASH_FILE" ]]; then
82
131
fi
83
132
else
84
133
echo " $WARNING * Couldn't find current hash. Updating to latest version anyway.$RESET "
85
- build
134
+ update
86
135
launch
87
136
fi
0 commit comments