/
install.sh
executable file
·133 lines (115 loc) · 2.46 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/usr/bin/env bash
CONFIG_DIR="$HOME/.arss"
DEFAULT_CLIENT_DIR="$CONFIG_DIR/clients/default"
function info ()
{
echo "[info]: $1"
}
function success ()
{
echo "done!"
echo ""
}
function error ()
{
echo "[error]: $1"
}
function error_exit ()
{
echo ""
error "INSTALLATION FAILED"
error "see the log above for information on which step failed"
echo "For usage details, type ./install.sh --help"
exit 1
}
function help_text ()
{
echo "install.sh - Installation script for arss"
echo ""
echo "Usage:"
echo " ./install.sh [OPTIONS]"
echo ""
echo "Options:"
echo " -p, --path <path/to/installation/directory>"
echo " Which directory to install arss in?"
echo " -c, --only-client"
echo " Only install client"
echo " -s, --only-server"
echo " Only install server"
echo " -h, --help"
echo " Prints help information"
}
function build_client ()
{
info "building client" &&
prefix="--prefix client" &&
npm $prefix install &&
npm $prefix run build &&
success
}
function build_server ()
{
info "building server" &&
go build arss && success
}
function install_client ()
{
info "installing client" &&
mkdir -p "$DEFAULT_CLIENT_DIR" &&
cp -R client/public/* "$DEFAULT_CLIENT_DIR" &&
info "installed client at $DEFAULT_CLIENT_DIR" &&
success
}
function install_server ()
{
info "installing server" &&
mv ./arss "$1/arss" &&
info "installed server at $1" &&
success
}
function build ()
{
build_client &&
build_server
}
function install ()
{
if [ "$only_client" = true ]; then
install_client
fi
if [ "$only_server" = true ]; then
install_server "$server_path"
fi
if [ "$only_client" = false ] && [ "$only_server" = false ]; then
install_client &&
install_server "$server_path"
fi
}
function parse_args ()
{
only_client=false
only_server=false
for arg in "$@"; do
case $arg in
-p|--path)
server_path=$2
shift
shift
;;
-c|--only-client)
only_client=true
shift
;;
-s|--only-server)
only_server=true
shift
;;
-h|--help)
help_text
exit 0
;;
esac
done
(build && install "$@") || error_exit "error occurred"
}
parse_args "$@"