-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup
executable file
·39 lines (39 loc) · 1.4 KB
/
setup
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
#!/bin/bash
# -------------------------------------------------------------------
version=0.2.16
stable=0.1.16
if [ "$1" = "stable" ]; then
version=$stable
fi
repo=https://github.com/active-logic/howl
url=$repo/releases/download/$version/howl.tgz
# -------------------------------------------------------------------
echo -e "GET http://google.com HTTP/1.0\n\n" \
| nc google.com 80 > /dev/null 2>&1
if [ $? -eq 1 ]; then
echo "Cannot run setup while offline" && exit $?
fi
# -------------------------------------------------------------------
set -euo pipefail
mkdir -p /usr/local/bin # Catalina: ensure /usr/local/bin
if command -v apt-get &> /dev/null
then # Linux: get sudo and dotnet sdk
flags=""
apt-get update -qq && apt-get install -qq sudo
if ! command -v dotnet &> /dev/null
then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/active-logic/howl/master/install_dotnet)"
fi
else flags="-r osx-x64" # macOS: set publish RID
fi
# -------------------------------------------------------------------
mkdir howl
curl -Ls $url | tar xz --strip 1 -C howl
pushd howl/src > /dev/null
sudo rm -rf /usr/local/Howl
dotnet publish -v quiet $flags -o ~/howl.build.tmp
sudo mv ~/howl.build.tmp /usr/local/Howl
sudo ln -sf /usr/local/Howl/src /usr/local/bin/howl
popd > /dev/null
rm -rf howl
howl