#!/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