mirror of
https://github.com/wweir/sower.git
synced 2024-04-21 12:42:15 +00:00
128 lines
3.7 KiB
Bash
Executable File
128 lines
3.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
[[ -d /tmp/sower ]] || mkdir /tmp/sower
|
|
cd /tmp/sower
|
|
|
|
echo ======== Install sower to your system ========
|
|
succ_message(){
|
|
if [[ -z $IP ]]; then
|
|
IP=127.0.0.1
|
|
fi
|
|
echo
|
|
echo ======== Installed sower to your system ========
|
|
echo The config file is: /usr/local/etc/sower.toml
|
|
echo please set $IP as the first domain name server manually.
|
|
}
|
|
|
|
# main logic
|
|
VERSION="$(curl -s "https://api.github.com/repos/wweir/sower/releases/latest" | awk -F '"' '/tag_name/{printf $4}')"
|
|
case "$(uname -s)" in
|
|
"Darwin")
|
|
curl -SLf https://github.com/wweir/sower/releases/download/$VERSION/sower-darwin-amd64.tar.gz | tar xzv
|
|
sudo mkdir -p /usr/local/bin/
|
|
sudo mv sower /usr/local/bin/
|
|
|
|
if [[ -r /usr/local/etc/sower.toml ]]; then
|
|
echo The config file already exists, keep the original file
|
|
else
|
|
printf "Please enter remote server adddress: "
|
|
read ADDRESS
|
|
printf "Please enter remote server password (default: 12345678): "
|
|
read PASSWORD
|
|
if [[ -z $PASSWORD ]]; then
|
|
PASSWORD="12345678"
|
|
fi
|
|
printf "Please enter which IP do you wanna listen (default: 127.0.0.1):"
|
|
read IP
|
|
if [[ -z $IP ]]; then
|
|
IP="127.0.0.1"
|
|
fi
|
|
echo
|
|
|
|
sed -i~ "s/# server_addr=\"remote-server/server_addr=\"$ADDRESS/" sower.toml
|
|
sed -i~ "s/client_ip=\"127.0.0.1\"/client_ip=\"$IP\"/" sower.toml
|
|
sed -i~ "s/# clear_dns_cache/clear_dns_cache/" sower.toml
|
|
sed -i~ "s/\"12345678\"/\"$PASSWORD\"/" sower.toml
|
|
sudo mkdir -p /usr/local/etc/
|
|
sudo mv sower.toml /usr/local/etc/
|
|
fi
|
|
|
|
echo
|
|
echo Register auto start service, root privilege is needed!
|
|
echo
|
|
sudo mv cc.wweir.sower.plist /Library/LaunchDaemons/
|
|
sudo chown root:wheel /Library/LaunchDaemons/cc.wweir.sower.plist
|
|
sudo launchctl load -w /Library/LaunchDaemons/cc.wweir.sower.plist
|
|
succ_message
|
|
;;
|
|
|
|
"Linux")
|
|
if [[ "$(cat /proc/1/comm)" != "systemd" ]]; then
|
|
echo do not support auto deploy on SysVinit
|
|
exit 1
|
|
fi
|
|
printf "Server side or client side, which do you wanna install [c/s]: "
|
|
read SIDE
|
|
echo
|
|
|
|
case "$SIDE" in
|
|
"c")
|
|
curl -SLf https://github.com/wweir/sower/releases/download/$VERSION/sower-linux-amd64.tar.gz | tar xzv
|
|
|
|
sudo mv sower /usr/local/bin/
|
|
|
|
if [[ -r /usr/local/etc/sower.toml ]]; then
|
|
echo The config file already exists, keep the original file
|
|
else
|
|
printf "Please enter remote server adddress: "
|
|
read ADDRESS
|
|
printf "Please enter remote server password (default: 12345678): "
|
|
read PASSWORD
|
|
if [[ -z $PASSWORD ]]; then
|
|
PASSWORD="12345678"
|
|
fi
|
|
printf "Please enter which IP do you wanna listen (default: 127.0.0.1):"
|
|
read IP
|
|
if [[ -z $IP ]]; then
|
|
IP="127.0.0.1"
|
|
fi
|
|
echo
|
|
|
|
sed -i~ "s/# server_addr=\"remote-server/server_addr=\"$ADDRESS/" sower.toml
|
|
sed -i~ "s/client_ip=\"127.0.0.1\"/client_ip=\"$IP\"/" sower.toml
|
|
sed -i~ "s/\"12345678\"/\"$PASSWORD\"/" sower.toml
|
|
sudo mv sower.toml /usr/local/etc/
|
|
fi
|
|
|
|
sudo mv sower-client.service /etc/systemd/system/
|
|
sudo systemctl enable sower-client
|
|
sudo systemctl start sower-client
|
|
succ_message
|
|
;;
|
|
|
|
"s")
|
|
curl -SLf https://github.com/wweir/sower/releases/download/$VERSION/sower-linux-amd64.tar.gz | tar xzv
|
|
printf "Please enter remote server password (default: 12345678): "
|
|
read PASSWORD
|
|
echo
|
|
if [[ -z $PASSWORD ]]; then
|
|
PASSWORD="12345678"
|
|
fi
|
|
|
|
sudo mv sower /usr/local/bin/
|
|
sed -i~ "s%bin/sower%bin/sower -p $PASSWORD%" sower-server.service
|
|
sudo mv sower-server.service /etc/systemd/system/
|
|
sudo systemctl enable sower-server
|
|
sudo systemctl start sower-server
|
|
;;
|
|
|
|
*)
|
|
echo "invalid: $SIDE" && exit 1
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
echo Do not support auto deploy on this platform.
|
|
;;
|
|
esac
|