forked from octra-labs/webcli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·156 lines (147 loc) · 5.09 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·156 lines (147 loc) · 5.09 KB
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/usr/bin/env bash
set -e
MODE="full"
for arg in "$@"; do
case "$arg" in
--deps-only|--no-build) MODE="deps" ;;
--help|-h)
echo "usage: $0 [--deps-only]"
echo "(no args) install deps + build"
echo "--deps-only install deps only (no make)"
exit 0
;;
esac
done
OS="$(uname -s)"
if [ "$(id -u)" = "0" ]; then
SUDO=""
else
if command -v sudo &>/dev/null; then
SUDO="sudo"
else
SUDO=""
fi
fi
case "$OS" in
Darwin)
echo "[1/3] macOS detected"
if ! command -v brew &>/dev/null; then
echo "homebrew not found. installing..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
if [ -d /opt/homebrew/bin ]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
elif [ -d /usr/local/bin ] && [ -x /usr/local/bin/brew ]; then
eval "$(/usr/local/bin/brew shellenv)"
fi
fi
for pkg in openssl@3 leveldb; do
if ! brew list $pkg &>/dev/null; then
echo "installing $pkg..."
brew install $pkg
else
echo "$pkg already installed"
fi
done
if ! xcode-select -p &>/dev/null; then
echo "installing Xcode command line tools..."
xcode-select --install 2>/dev/null || true
echo "a GUI installer may have opened. re-run this script after it finishes."
exit 0
fi
;;
Linux)
echo "[1/3] linux detected"
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "distro: ${ID:-unknown} ${VERSION_ID:-}"
fi
if command -v apt-get &>/dev/null; then
echo "installing dependencies (apt)..."
$SUDO apt-get update -qq
$SUDO env DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \
build-essential g++ libssl-dev libleveldb-dev pkg-config make curl
elif command -v dnf &>/dev/null; then
echo "installing dependencies (dnf)..."
$SUDO dnf install -y gcc-c++ openssl-devel leveldb-devel make pkgconfig
elif command -v yum &>/dev/null; then
echo "installing dependencies (yum)..."
$SUDO yum install -y gcc-c++ openssl-devel leveldb-devel make pkgconfig
elif command -v zypper &>/dev/null; then
echo "installing dependencies (zypper)..."
$SUDO zypper install -y gcc-c++ libopenssl-devel leveldb-devel make pkg-config
elif command -v pacman &>/dev/null; then
echo "installing dependencies (pacman)..."
$SUDO pacman -S --noconfirm --needed gcc openssl leveldb make pkgconf
elif command -v apk &>/dev/null; then
echo "installing dependencies (apk)..."
$SUDO apk add --no-cache g++ openssl-dev leveldb-dev make pkgconfig musl-dev linux-headers
elif command -v emerge &>/dev/null; then
echo "installing dependencies (emerge)..."
$SUDO emerge --noreplace dev-libs/openssl dev-libs/leveldb sys-devel/gcc sys-devel/make
elif command -v xbps-install &>/dev/null; then
echo "installing dependencies (xbps)..."
$SUDO xbps-install -Sy gcc openssl-devel leveldb-devel make pkgconf
else
echo "unknown package manager. install manually: g++, libssl-dev, libleveldb-dev, make, pkg-config"
exit 1
fi
;;
FreeBSD)
echo "[1/3] FreeBSD detected"
$SUDO pkg install -y gcc openssl leveldb gmake pkgconf
;;
OpenBSD)
echo "[1/3] OpenBSD detected"
$SUDO pkg_add -I g++ openssl leveldb gmake
;;
NetBSD)
echo "[1/3] NetBSD detected"
$SUDO pkgin install -y gcc openssl leveldb gmake pkg-config
;;
MINGW*|MSYS*|CYGWIN*)
if [ "$MODE" = "deps" ]; then
echo "[1/1] detected windows shell ($OS) in deps-only mode"
echo "on windows, dependencies should be installed via setup.bat from cmd.exe"
echo "if you already ran setup.bat, this is fine — continuing"
exit 0
fi
echo "detected windows shell ($OS). run setup.bat from cmd.exe instead."
exit 1
;;
*)
echo "unsupported OS: $OS"
echo "on windows use setup.bat. please install manually: g++, libssl-dev, libleveldb-dev, make"
exit 1
;;
esac
if [ "$MODE" = "deps" ]; then
echo ""
echo "[2/2] dependencies installed (deps-only mode)"
exit 0
fi
echo ""
echo "[2/3] building octra wallet"
if ! command -v make &>/dev/null; then
if command -v gmake &>/dev/null; then
MAKE=gmake
else
echo "neither make nor gmake found"
exit 1
fi
else
MAKE=make
fi
OCTRA_SKIP_AUTOSETUP=1 $MAKE clean 2>/dev/null || true
if ! OCTRA_SKIP_AUTOSETUP=1 $MAKE; then
echo ""
echo "build failed"
exit 1
fi
echo ""
echo "[3/3] done"
echo ""
echo "start the wallet:"
echo "./octra_wallet"
echo ""
echo "then open http://127.0.0.1:8420 in your browser"
echo ""