summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoses Narrow2023-07-29 17:48:11 -0500
committerMoses Narrow2023-07-29 17:48:11 -0500
commit96d96b73957c72f9a82eb906a787a8197f087998 (patch)
treeb22d432f966755a17bea06f9f02ae4bfadcc6e71
parenta5eb36fef1e857b753dc02a6b213526be6e01f4a (diff)
downloadaur-96d96b73957c72f9a82eb906a787a8197f087998.tar.gz
autoconfig script optimization ; bump pkgrel
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD4
-rw-r--r--cc.deb.PKGBUILD2
-rw-r--r--cc.dev.PKGBUILD2
-rwxr-xr-xskywire-autoconfig445
5 files changed, 133 insertions, 324 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 96a9ffed7354..406a9ec41d32 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = skywire-bin
pkgdesc = Skywire: Building a new Internet. Skycoin.com
pkgver = 1.3.11
- pkgrel = 3
+ pkgrel = 4
url = https://github.com/skycoin/skywire
install = skywire.install
arch = i686
@@ -27,7 +27,7 @@ pkgbase = skywire-bin
source = skywire.service
source = skywire-autoconfig.service
source = https://raw.githubusercontent.com/skycoin/skywire/develop/dmsghttp-config.json
- sha256sums = c6147c84af4e68c7f2c02fcb434019fcf9dfcdfaa34445e2b36dacee029f6619
+ sha256sums = e82b5265d4691181a1676a9bf4d9a6a91f764799949590562acd665553c53f10
sha256sums = 40c80ccce9e89ae559050b943be1f09d905476c614a72d74fac2a58c821ac058
sha256sums = 00da5a9afdf5a8c7033978d2074039ba1ff7bc7a7221fbd278eb1270bdeb8eae
sha256sums = ec24750a99f5cda8d8a8dc94743943218e1b2088c2b2c7dc1644ee78d954fe7e
diff --git a/PKGBUILD b/PKGBUILD
index 3373c8008c71..8e1be98d24d8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@ _pkgname=${pkgname/-bin/}
_githuborg=skycoin
pkgdesc="Skywire: Building a new Internet. Skycoin.com"
pkgver='1.3.11'
-pkgrel='3'
+pkgrel='4'
_rc=''
#_rc='-pr1'
_pkgver="${pkgver}${_rc}"
@@ -29,7 +29,7 @@ _source=("${_script[@]}"
"https://raw.githubusercontent.com/skycoin/skywire/develop/dmsghttp-config.json"
)
source=("${_source[@]}")
-sha256sums=('c6147c84af4e68c7f2c02fcb434019fcf9dfcdfaa34445e2b36dacee029f6619'
+sha256sums=('e82b5265d4691181a1676a9bf4d9a6a91f764799949590562acd665553c53f10'
'40c80ccce9e89ae559050b943be1f09d905476c614a72d74fac2a58c821ac058'
'00da5a9afdf5a8c7033978d2074039ba1ff7bc7a7221fbd278eb1270bdeb8eae'
'ec24750a99f5cda8d8a8dc94743943218e1b2088c2b2c7dc1644ee78d954fe7e'
diff --git a/cc.deb.PKGBUILD b/cc.deb.PKGBUILD
index 98fc3cc736b4..8c5240e7f2bb 100644
--- a/cc.deb.PKGBUILD
+++ b/cc.deb.PKGBUILD
@@ -23,7 +23,7 @@ noextract=(
"${_binarchive}-armhf.tar.gz"
"${_binarchive}-arm.tar.gz"
)
-sha256sums=('c6147c84af4e68c7f2c02fcb434019fcf9dfcdfaa34445e2b36dacee029f6619'
+sha256sums=('e82b5265d4691181a1676a9bf4d9a6a91f764799949590562acd665553c53f10'
'40c80ccce9e89ae559050b943be1f09d905476c614a72d74fac2a58c821ac058'
'00da5a9afdf5a8c7033978d2074039ba1ff7bc7a7221fbd278eb1270bdeb8eae'
'ec24750a99f5cda8d8a8dc94743943218e1b2088c2b2c7dc1644ee78d954fe7e'
diff --git a/cc.dev.PKGBUILD b/cc.dev.PKGBUILD
index 503fed98aae6..612067940f69 100644
--- a/cc.dev.PKGBUILD
+++ b/cc.dev.PKGBUILD
@@ -14,7 +14,7 @@ source=("git+${url}.git#branch=develop"
"${_source[@]}"
)
sha256sums=('SKIP'
- 'c6147c84af4e68c7f2c02fcb434019fcf9dfcdfaa34445e2b36dacee029f6619'
+ 'e82b5265d4691181a1676a9bf4d9a6a91f764799949590562acd665553c53f10'
'40c80ccce9e89ae559050b943be1f09d905476c614a72d74fac2a58c821ac058'
'00da5a9afdf5a8c7033978d2074039ba1ff7bc7a7221fbd278eb1270bdeb8eae'
'ec24750a99f5cda8d8a8dc94743943218e1b2088c2b2c7dc1644ee78d954fe7e'
diff --git a/skywire-autoconfig b/skywire-autoconfig
index 62e4e6753060..03830774812a 100755
--- a/skywire-autoconfig
+++ b/skywire-autoconfig
@@ -1,68 +1,47 @@
#!/bin/bash
#/opt/skywire/scripts/skywire-autoconfig
#skywire autoconfiguration script for debian & archlinux packages
-#source the skyenv file if it exists - provided by the skybian package or the user
+[[ ${DEBUGAUTOCONF} == "1" ]] && set -x
+#source the skyenv file if it exists - provided by the skyrepo package or the user
[[ -f /etc/profile.d/skyenv.sh ]] && source /etc/profile.d/skyenv.sh
-[[ ! -z "$SKYENV" ]] && [[ -f "$SKYENV" ]] && source $SKYENV
-[[ -z "$SKYENV" ]] && SKYENV=/etc/skywire.conf && [[ -f "$SKYENV" ]] && source $SKYENV
+#The above file was the previous limited configuration ; the new file is /etc/skywire.conf but may also be specified
+[[ ! -z "${SKYENV}" ]] && [[ -f "${SKYENV}" ]] && source ${SKYENV}
+#if the env is empty, we set a default and source that if it exists
+[[ -z "${SKYENV}" ]] && SKYENV=/etc/skywire.conf && [[ -f "${SKYENV}" ]] && source ${SKYENV} && unset SKYENV || unset SKYENV
[[ "$?" -ne 0 ]] && [[ -f /etc/profile.d/skyenv.sh ]] && source /etc/profile.d/skyenv.sh
#set NOAUTOCONFIG=true to avoid running the script in the postinstall
-if [[ ${NOAUTOCONFIG} == true ]]; then
- #unset the env
- NOAUTOCONFIG=''
- echo "autoconfiguration disabled. to configure and start skywire run: skywire-autoconfig"
- exit 0
-fi
+[[ ${NOAUTOCONFIG} == true ]] && ( unset NOAUTOCONFIG ; echo "autoconfiguration disabled. to configure and start skywire run: skywire-autoconfig" ; exit 0 )
#check for root
-if [[ $EUID -ne 0 ]]; then
- echo "root permissions required"
- exit 1
-fi
+[[ $EUID -ne 0 ]] && ( echo "root permissions required" ; exit 1 )
#make the custom logserver path just in case
[[ ! -d /opt/skywire/local/custom ]] && mkdir -p /opt/skywire/local/custom
-
#transition to new /etc/skywire.conf file from /etc/profile.d/skyenv.sh
-[[ ! -z "$SKYENV" ]] && [[ -f "$SKYENV" ]] && source $SKYENV
-[[ -z "$SKYENV" ]] && SKYENV=/etc/skywire.conf && [[ -f "$SKYENV" ]] && source $SKYENV
-if [[ "$?" -ne 0 ]] && [[ -f /etc/profile.d/skyenv.sh ]] && [[ ! -f "$SKYENV" ]] ; then
+[[ ! -z "${SKYENV}" ]] && [[ -f "${SKYENV}" ]] && source ${SKYENV}
+[[ -z "${SKYENV}" ]] && SKYENV=/etc/skywire.conf export SKYENV=/etc/skywire.conf && [[ -f "${SKYENV}" ]] && source ${SKYENV} || unset SKYENV
+if [[ "$?" -ne 0 ]] && [[ -f /etc/profile.d/skyenv.sh ]] && [[ ! -f "${SKYENV}" ]] ; then
source /etc/profile.d/skyenv.sh
-skywire-cli config gen -q | tee /etc/skywire.conf > /dev/null
+SKYENV=/etc/skywire.conf
+skywire-cli config gen -q | tee ${SKYENV} > /dev/null
sed -i "s/#BESTPROTO=true/BESTPROTO=true/g" /etc/skywire.conf
-if [[ ( ${URL} -ne "") ]]; then
-sed -i "s/#SVCCONFADDR=('')/SVCCONFADDR=('${URL}')/g" /etc/skywire.conf
-fi
-if [[ ( ${DMSGHTTP} -eq "1") ]]; then
- sed -i "s/#DMSGHTTP=true/DMSGHTTP=true/g" /etc/skywire.conf
-fi
-if [[ ( ${VISORISPUBLIC} -eq "1") ]]; then
- sed -i "s/#VISORISPUBLIC=true/VISORISPUBLIC=true/g" /etc/skywire.conf
-fi
-if [[ ( ${NOAUTOCONNECT} -eq "1") ]]; then
- sed -i "s/#DISABLEPUBLICAUTOCONN=true/DISABLEPUBLICAUTOCONN=true/g" /etc/skywire.conf
-fi
-if [[ ${VPNSERVER} -eq "1" ]]; then
- sed -i "s/#VPNSERVER=true/VPNSERVER=true/g" /etc/skywire.conf
+[[ ( ${URL} -ne "") ]] && sed -i "s/#SVCCONFADDR=('')/SVCCONFADDR=('${URL}')/g" ${SKYENV} ;
+[[ ( ${DMSGHTTP} -eq "1") ]] && sed -i 's/^.*DMSGHTTP.*$/DMSGHTTP=true/g' ${SKYENV} ;
+[[ ( ${VISORISPUBLIC} -eq "1") ]] && sed -i 's/^.*VISORISPUBLIC.*$/VISORISPUBLIC=true/g' ${SKYENV} ;
+[[ ( ${NOAUTOCONNECT} -eq "1") ]] && sed -i 's/^.*DISABLEPUBLICAUTOCONN.*$/DISABLEPUBLICAUTOCONN=true/g' ${SKYENV} ;
+[[ ${VPNSERVER} -eq "1" ]] && sed -i 's/^.*VPNSERVER.*$/VPNSERVER=true/g' ${SKYENV} ;
+[[ ${TESTENV} -eq "1" ]] && sed -i 's/^.*TESTENV.*$/TESTENV=true/g' ${SKYENV} ;
+sed -i 's/^.*PKGENV.*$/PKGENV=true/g' ${SKYENV}
+[[ (! -f /opt/skywire/skywire.json) || ($(cat /opt/skywire/skywire.json | grep -Po '"hypervisor":') != "") ]] && sed -i "s/#ISHYPERVISOR=true/ISHYPERVISOR=true/g" ${SKYENV}
+export SKYENV=/etc/skywire.conf && [[ -f "${SKYENV}" ]] && source ${SKYENV}
+echo "export SKYENV=${SKYENV}"
fi
-if [[ ${TESTENV} -eq "1" ]]; then
- sed -i "s/#TESTENV=true/TESTENV=true/g" /etc/skywire.conf
-fi
-sed -i "s/#PKGENV=true/PKGENV=true/g" /etc/skywire.conf
-
-[[ (! -f /opt/skywire/skywire.json) || ($(cat /opt/skywire/skywire.json | grep -Po '"hypervisor":') != "") ]] && sed -i "s/#ISHYPERVISOR=true/ISHYPERVISOR=true/g" /etc/skywire.conf
-
-SKYENV=/etc/skywire.conf && [[ -f "$SKYENV" ]] && source $SKYENV
-fi
-
#grant network permissions to the vpn app binaries ; should be done via systemd service
#setcap cap_net_admin+ep /opt/skywire/apps/vpn-client
#setcap cap_net_admin+ep /opt/skywire/apps/vpn-server
# determine if skywire is running via systemd
-if [[ $(ps -eo pid,comm,cgroup | grep skywire) == *"system.slice"* ]]; then
-WSYSTEMD=1
-fi
+[[ $(ps -eo pid,comm,cgroup | grep skywire) == *"system.slice"* ]] && WSYSTEMD=1 ;
systemctl is-active --quiet skywire-autoconfig && systemctl disable skywire-autoconfig 2> /dev/null
@@ -106,40 +85,56 @@ _errmsg2() {
#generate config as root
_config_gen() {
- ##generate (hyper)visor configuration##
-# if [[ ! -z "$SKYENV" ]] && [[ -f "$SKYENV" ]] ; then
-#
-# _configgencmd() {
-# SKYENV=$SKYENV skywire-cli config gen -pr ${_retain_hv}
-# }
- # show config gen command used
-# _configgencmdcolor="${_green}${_skyenv}${_cyan}skywire-cli ${_yellow}config gen -pr ${_retain_hv}"
-# else
+ ##generate (hyper)visor configuration##
+ if [[ ! -z "${SKYENV}" ]] && [[ -f "${SKYENV}" ]] ; then
+ # 0 as argument drops any remote hypervisors which were set in the configuration
+ # & triggers the creation of the local hyperisor configuration
+ if [[ ${_1} == "0" ]]; then
+ _retainhv=""
+ unset _1
+ grep -q "HYPERVISORPKS" ${SKYENV} && ( sed -i "s/^.*HYPERVISORPKS.*\$/#HYPERVISORPKS=('')/" ${SKYENV} ) || ( echo "#HYPERVISORPKS=('')" | tee -a ${SKYENV} > /dev/null )
+ grep -q "ISHYPERVISOR" ${SKYENV} && ( sed -i 's/^.*ISHYPERVISOR.*$/ISHYPERVISOR=true/' ${SKYENV} ) || ( echo "ISHYPERVISOR=true" | tee -a ${SKYENV} > /dev/null )
+ fi
+ # 1 as argument drops remote hypervisors and does not create the local hv config
+ if [[ ${_1} == "1" ]]; then
+ _retainhv=""
+ unset _1
+ grep -q "HYPERVISORPKS" ${SKYENV} && ( sed -i "s/^.*HYPERVISORPKS.*\$/#HYPERVISORPKS=('')/" ${SKYENV} ) || ( echo "#HYPERVISORPKS=('')" | tee -a ${SKYENV} > /dev/null )
+ grep -q "ISHYPERVISOR" ${SKYENV} && ( sed -i 's/^.*ISHYPERVISOR.*$/#ISHYPERVISOR=true/' ${SKYENV} ) || ( echo "#ISHYPERVISOR=true" | tee -a ${SKYENV} > /dev/null )
+ fi
+ # create the flag to set the remote hypervisor(s)
+ if [[ ! -z ${_1} ]]; then
+ _retainhv=""
+ grep -q "HYPERVISORPKS" ${SKYENV} && ( sed -i "s/^.*HYPERVISORPKS.*\$/HYPERVISORPKS=('${_1}')/" ${SKYENV} ) || ( echo "HYPERVISORPKS=('${_1}')" | tee -a ${SKYENV} > /dev/null )
+ grep -q "ISHYPERVISOR" ${SKYENV} && ( sed -i 's/^.*ISHYPERVISOR.*$/#ISHYPERVISOR=true/' ${SKYENV} ) || ( echo "#ISHYPERVISOR=true" | tee -a ${SKYENV} > /dev/null )
+ fi
+
+ [[ -f /opt/skywire/local/reward.txt ]] && ( grep -q "REWARDSKYADDR" ${SKYENV} && ( sed -i "s/^.*REWARDSKYADDR.*\$/REWARDSKYADDR=('$(cat /opt/skywire/local/reward.txt)')/" ${SKYENV} ) || ( echo "REWARDSKYADDR=$(cat /opt/skywire/local/reward.txt)" | tee -a ${SKYENV} > /dev/null ) )
+ source ${SKYENV}
+ _skyenv="SKYENV=${SKYENV}"
+ export SKYENV=${SKYENV}
+ _configgencmd() {
+ skywire-cli config gen -r ${_retain_hv}
+ }
+# SKYENV=${SKYENV} skywire-cli config gen --all
+# show config gen command used
+ _configgencmdcolor="${_green}${_skyenv} ${_cyan}skywire-cli ${_yellow}config gen -r ${_retain_hv}"
+ else
#create by default the local hypervisor config if no config exists ; and retain any hypervisor config which exists
#check for argument - remote pk or 0
# 0 as argument drops any remote hypervisors which were set in the configuration
# & triggers the creation of the local hyperisor configuration
- if [[ ${_1} == "0" ]]; then
- _retainhv=""
- unset _1
- _ishypervisor="-i"
- fi
+ [[ ${_1} == "0" ]] && ( _retainhv="" ; unset _1 ; _ishypervisor=" -i" )
# 1 as argument drops remote hypervisors and does not create the local hv config
- if [[ ${_1} == "1" ]]; then
- _retainhv=""
- unset _1
- _ishypervisor=""
- fi
+ [[ ${_1} == "1" ]] && ( _retainhv="" ; unset _1 ; _ishypervisor="" )
# create the flag to set the remote hypervisor(s)
- if [[ ! -z ${_1} ]]; then
- _retainhv=""
- _hypervisorpks=" -j ${_1}" #shorthand flag: -j
- _ishypervisor=""
- fi
+ [[ ! -z ${_1} ]] && ( _retainhv="" ; _hypervisorpks=" -j ${_1}" ; _ishypervisor="" )
+
_configgencmd() {
skywire-cli config gen -r ${_visorispublic}${_vpnserver}${_testenv}${_bestproto}${_svccconfaddr}${_loglvl}${_dmsghttp}${_ishypervisor}${_displaynodeip}${_pkgenv}${_sk}${_disablepublicautoconn}${_version}${_binpath}${_proxyclientpk}${_startproxyclient}${_noproxyserver}${_proxyserverpass}${_proxyclientpass}${_vpnks}${_addvpn}${_vpnclientpass}${_vpnserverpass}${_vpnserversecure}${_vpnservernetifc}${_hypervisorpks}
}
_configgencmdcolor="${_cyan}skywire-cli ${_yellow}config gen -r ${_visorispublic}${_vpnserver}${_testenv}${_bestproto}${_svccconfaddr}${_loglvl}${_dmsghttp}${_ishypervisor}${_displaynodeip}${_pkgenv}${_sk}${_disablepublicautoconn}${_version}${_binpath}${_proxyclientpk}${_startproxyclient}${_noproxyserver}${_proxyserverpass}${_proxyclientpass}${_vpnks}${_addvpn}${_vpnclientpass}${_vpnserverpass}${_vpnserversecure}${_vpnservernetifc}${_hypervisorpks}"
+ fi
_msg3 "Generating skywire config with command:
${_configgencmdcolor}"
_configgencmd > /dev/null
@@ -151,274 +146,88 @@ _configgencmd() {
exit ${_err}
fi
#logging check
- if [[ -f /opt/skywire/skywire.json ]]; then
- _msg3 "${_blue}Skywire${_nc} configuration updated
-config path: ${_purple}/opt/skywire/skywire.json${_nc}"
- if [[ ! -f /etc/skywire-config.json ]]; then
- _msg2 "backing up configuration to /etc/skywire-config.json"
- cp -b /opt/skywire/skywire.json /etc/skywire-config.json
- fi
- else
- _errmsg2 "expected config file not found at /opt/skywire/skywire.json"
- exit 100
- fi
+ [[ -f /opt/skywire/skywire.json ]] && ( _msg3 "${_blue}Skywire${_nc} configuration updated\nconfig path: ${_purple}/opt/skywire/skywire.json${_nc}" ) || ( _errmsg2 "expected config file not found at /opt/skywire/skywire.json" ; exit 100)
+ [[ ! -f /etc/skywire-config.json ]] && ( _msg2 "backing up configuration to /etc/skywire-config.json" && cp -b /opt/skywire/skywire.json /etc/skywire-config.json )
}
-if [[ ! -z "$SKYENV" ]] && [[ -f "$SKYENV" ]] ; then
- if [[ "${VISORISPUBLIC}" == "true" ]]; then
- _visorispublic=" --public"
- fi
-
- if [[ "${VPNSERVER}" == "true" ]]; then
- _vpnserver=" --servevpn"
- fi
-
- if [[ "${TESTENV}" == "true" ]]; then
- _testenv=" -t"
- fi
-
- if [[ "${BESTPROTO}" == "true" ]]; then
- _bestproto=" -b"
- fi
- if [[ "${#SVCCONFADDR[@]}" -gt 0 ]]; then
- IFS=',' _svccconfaddr=" -a='${SVCCONFADDR[*]}'"
- fi
- if [[ "${LOGLVL}" != "" ]]; then
- _loglvl=" --loglvl=${LOGLVL}"
- fi
-
- if [[ "${DMSGHTTP}" == "true" ]]; then
- _dmsghttp=" -d"
- fi
-
- if [[ "${ISHYPERVISOR}" == "true" ]]; then
- _ishypervisor=" -i"
- fi
-
- if [[ -n "${OUTPUT}" ]]; then
- _output=" -o '${OUTPUT}'"
- fi
-
- if [[ "${DISPLAYNODEIP}" == "true" ]]; then
- _displaynodeip=" --publicip"
- fi
-
-# if [[ "${PKGENV}" == "true" ]]; then
- _pkgenv=" -p"
-# fi
-
- if [[ -n "${SK}" ]]; then
- _sk=" -s '${SK}'"
- fi
-
- if [[ "${DISABLEPUBLICAUTOCONN}" == "true" ]]; then
- _disablepublicautoconn=" -y"
- fi
-
- if [[ -n "${VERSION}" ]]; then
- _version=" --version='${VERSION}'"
- fi
-
- if [[ -n "${BINPATH}" ]]; then
- _binpath=" --binpath='${BINPATH}'"
- fi
-
- if [[ -n "${PROXYCLIENTPK}" ]]; then
- _proxyclientpk=" --proxyclientpk='${PROXYCLIENTPK}'"
- fi
-
- if [[ "${STARTPROXYCLIENT}" == "true" ]]; then
- _startproxyclient=" --startproxyclient"
- fi
-
- if [[ "${NOPROXYSERVER}" == "true" ]]; then
- _noproxyserver=" --noproxyserver"
- fi
-
- if [[ -n "${PROXYSEVERPASS}" ]]; then
- _proxyserverpass=" --proxyserverpass='${PROXYSEVERPASS}'"
- fi
-
- if [[ -n "${PROXYCLIENTPASS}" ]]; then
- _proxyclientpass=" --proxyclientpass='${PROXYCLIENTPASS}'"
- fi
-
- if [[ "${VPNKS}" == "true" ]]; then
- _vpnks=" --killsw='${VPNKS}'"
- fi
-
- if [[ -n "${ADDVPNPK}" ]]; then
- _addvpn=" --addvpn='${ADDVPNPK}'"
- fi
-
- if [[ -n "${VPNCLIENTPASS}" ]]; then
- _vpnclientpass=" --vpnpass='${VPNCLIENTPASS}'"
- fi
-
- if [[ -n "${VPNSEVERPASS}" ]]; then
- _vpnserverpass=" --vpnserverpass='${VPNSEVERPASS}'"
- fi
-
- if [[ -n "${VPNSEVERSECURE}" ]]; then
- _vpnserversecure=" --secure='${VPNSEVERSECURE}'"
- fi
-
- if [[ -n "${VPNSEVERNETIFC}" ]]; then
- _vpnservernetifc=" --netifc='${VPNSEVERNETIFC}'"
- fi
-
- if [[ "${#HYPERVISORPKS[@]}" -gt 0 ]]; then
- IFS=',' _hypervisorpks=" -j '${HYPERVISORPKS[*]}'"
- fi
-
+if [[ ! -z "${SKYENV}" ]] && [[ -f "${SKYENV}" ]] ; then
+[[ "${VISORISPUBLIC}" == "true" ]] && _visorispublic=" --public" ;
+[[ "${VPNSERVER}" == "true" ]] && _vpnserver=" --servevpn" ;
+[[ "${TESTENV}" == "true" ]] && _testenv=" -t" ;
+[[ "${BESTPROTO}" == "true" ]] && _bestproto=" -b" ;
+[[ "${#SVCCONFADDR[@]}" -gt 0 ]] && IFS=',' _svccconfaddr=" -a='${SVCCONFADDR[*]}'" ;
+[[ "${LOGLVL}" != "" ]] && _loglvl=" --loglvl=${LOGLVL}" ;
+[[ "${DMSGHTTP}" == "true" ]] && _dmsghttp=" -d" ;
+[[ "${ISHYPERVISOR}" == "true" ]] && _ishypervisor=" -i" ;
+[[ -n "${OUTPUT}" ]] && _output=" -o '${OUTPUT}'" ;
+[[ "${DISPLAYNODEIP}" == "true" ]] && _displaynodeip=" --publicip" ;
+_pkgenv=" -p" ;
+[[ -n "${SK}" ]] && _sk=" -s '${SK}'" ;
+[[ "${DISABLEPUBLICAUTOCONN}" == "true" ]] && _disablepublicautoconn=" -y" ;
+[[ -n "${VERSION}" ]] && _version=" --version='${VERSION}'" ;
+[[ -n "${BINPATH}" ]] && _binpath=" --binpath='${BINPATH}'" ;
+[[ -n "${PROXYCLIENTPK}" ]] && _proxyclientpk=" --proxyclientpk='${PROXYCLIENTPK}'" ;
+[[ "${STARTPROXYCLIENT}" == "true" ]] && _startproxyclient=" --startproxyclient" ;
+[[ "${NOPROXYSERVER}" == "true" ]] && _noproxyserver=" --noproxyserver" ;
+[[ -n "${PROXYSEVERPASS}" ]] && _proxyserverpass=" --proxyserverpass='${PROXYSEVERPASS}'" ;
+[[ -n "${PROXYCLIENTPASS}" ]] && _proxyclientpass=" --proxyclientpass='${PROXYCLIENTPASS}'" ;
+[[ "${VPNKS}" == "true" ]] && _vpnks=" --killsw='${VPNKS}'" ;
+[[ -n "${ADDVPNPK}" ]] && _addvpn=" --addvpn='${ADDVPNPK}'" ;
+[[ -n "${VPNCLIENTPASS}" ]] && _vpnclientpass=" --vpnpass='${VPNCLIENTPASS}'" ;
+[[ -n "${VPNSEVERPASS}" ]] && _vpnserverpass=" --vpnserverpass='${VPNSEVERPASS}'" ;
+[[ -n "${VPNSEVERSECURE}" ]] && _vpnserversecure=" --secure='${VPNSEVERSECURE}'" ;
+[[ -n "${VPNSEVERNETIFC}" ]] && _vpnservernetifc=" --netifc='${VPNSEVERNETIFC}'" ;
+[[ "${#HYPERVISORPKS[@]}" -gt 0 ]] && IFS=',' _hypervisorpks=" -j '${HYPERVISORPKS[*]}'" ;
else
-if [[ ( ${URL} -ne "") ]]; then
- _svccconfaddr=" -a '${URL}'"
-fi
-if [[ ( ${DMSGHTTP} -eq "1") ]]; then
- _dmsghttp=" -d"
-fi
-if [[ ( ${VISORISPUBLIC} -eq "1") ]]; then
- _visorispublic=" --public"
-fi
-if [[ ( ${NOAUTOCONNECT} -eq "1") ]]; then
- _disablepublicautoconn=" -y"
-fi
-if [[ ${VPNSERVER} -eq "1" ]]; then
- _vpnserver=" --servevpn"
-fi
-_retainhv="-x"
-if [[ ${TESTENV} -eq "1" ]]; then
- _testenv=" -t"
-fi
-_bestproto=" -b"
-_pkgenv=" -p"
-[[ (! -f /opt/skywire/skywire.json) || ($(cat /opt/skywire/skywire.json | grep -Po '"hypervisor":') != "") ]] && _ishypervisor=" -i"
+[[ ( ${URL} -ne "") ]] && _svccconfaddr=" -a '${URL}'" ;
+[[ ( ${DMSGHTTP} -eq "1") ]] && _dmsghttp=" -d" ;
+[[ ( ${VISORISPUBLIC} -eq "1") ]] && _visorispublic=" --public" ;
+[[ ( ${NOAUTOCONNECT} -eq "1") ]] && _disablepublicautoconn=" -y" ;
+[[ ${VPNSERVER} -eq "1" ]] && _vpnserver=" --servevpn" ;
+[[ ${TESTENV} -eq "1" ]] && _testenv=" -t" ;
+_retainhv="-x" ;
+_bestproto=" -b" ;
+_pkgenv=" -p" ;
+[[ (! -f /opt/skywire/skywire.json) || ($(cat /opt/skywire/skywire.json | grep -Po '"hypervisor":') != "") ]] && _ishypervisor=" -i" ;
fi
#check if >>this script<< is a child process of the systemd service i.e.: run in dmsgpty terminal
-if [[ "${SYSTEMDCHILD}" -ne "1" ]]; then
- _now="--now"
-fi
-
+[[ "${SYSTEMDCHILD}" -ne "1" ]] && _now="--now" ;
#root portion of the config
_msg2 "Configuring skywire"
-if [[ $(skywire -v | awk '{print $NF}') != *"unknown"* ]] ; then
-_msg2 "version: $(skywire -v | awk '{print $NF}')"
-fi
+[[ $(skywire -v | awk '{print $NF}') != *"unknown"* ]] && _msg2 "version: $(skywire -v | awk '{print $NF}')" ;
#attempt to import config if none exists - i.e. import skybian config or restore config
-if [[ ! -f /opt/skywire/skywire.json ]]; then
- if [[ -f /etc/skywire-config.json ]]; then
- _warnmsg1 "Importing configuration from /etc/skywire-config.json to /opt/skywire/skywire.json"
- cp -b /etc/skywire-config.json /opt/skywire/skywire.json
- fi
-fi
-if [[ ! -f /opt/skywire/local/reward.txt ]]; then
- if [[ -f /etc/reward.txt ]]; then
- _warnmsg1 "Importing reward address from /etc/reward.txt to /opt/skywire/local/reward.txt"
- cp -b /etc/reward.txt /opt/skywire/local/reward.txt
- fi
-fi
-if [[ ! -f /opt/skywire/users.db ]]; then
- if [[ -f /etc/users.db ]]; then
- _warnmsg1 "Importing hypervisor UI login credentials from /etc/users.db to /opt/skywire/users.db"
- cp -b /etc/users.db /opt/skywire/users.db
- fi
-fi
+[[ ! -f /opt/skywire/skywire.json ]] && [[ -f /etc/skywire-config.json ]] && ( _warnmsg1 "Importing configuration from /etc/skywire-config.json to /opt/skywire/skywire.json" ; cp -b /etc/skywire-config.json /opt/skywire/skywire.json )
+[[ ! -f /opt/skywire/local/reward.txt ]] && [[ -f /etc/reward.txt ]] && ( _warnmsg1 "Importing reward address from /etc/reward.txt to /opt/skywire/local/reward.txt" ; cp -b /etc/reward.txt /opt/skywire/local/reward.txt )
+[[ ! -f /opt/skywire/users.db ]] && [[ -f /etc/users.db ]] && ( _warnmsg1 "Importing hypervisor UI login credentials from /etc/users.db to /opt/skywire/users.db" ; cp -b /etc/users.db /opt/skywire/users.db )
#config generation
_config_gen
_svc=skywire
-if [[ $SKYBIAN == "true" ]]; then
- _msg3 "Enabling ${_svc} service${_now/--/ and starting }..
- systemctl enable ${_now} ${_svc}.service"
-systemctl enable ${_now} ${_svc}.service 2> /dev/null
-fi
-if [[ $DMSGPTYTERM == "1" ]]; then
- if [[ ${_now} != "--now" ]]; then
- _msg3 "Please restart ${_svc} service manually:
- ${_red}systemctl restart ${_svc} 2> /dev/null${_nc}"
- exit 0
- else
- _msg3 "Please shut down your visor and start it again with:
- ${_red}systemctl start ${_svc} 2> /dev/null${_nc}"
- exit 0
- fi
-fi
+[[ $SKYBIAN == "true" ]] && ( _msg3 "Enabling ${_svc} service${_now/--/ and starting }..\n systemctl enable ${_now} ${_svc}.service" ; systemctl enable ${_now} ${_svc}.service 2> /dev/null )
+[[ $DMSGPTYTERM == "1" ]] && ( [[ ${_now} != "--now" ]] && ( _msg3 "Please restart ${_svc} service manually:\n ${_red}systemctl restart ${_svc} 2> /dev/null${_nc}" ; exit 0 ) || ( _msg3 "Please shut down your visor and start it again with:\n ${_red}systemctl start ${_svc} 2> /dev/null${_nc}" ; exit 0 ))
#restart the service
systemctl is-active --quiet ${_svc} && _msg3 "Restarting skywire.service..." && systemctl restart ${_svc} 2> /dev/null
-if ! systemctl is-active --quiet ${_svc} >/dev/null; then
- _msg2 "Start the skywire service with:
- ${_red}systemctl start ${_svc}${_nc}"
- exit 0
-fi
+! systemctl is-active --quiet ${_svc} >/dev/null && ( _msg2 "Start the skywire service with:\n ${_red}systemctl start ${_svc}${_nc}" ; exit 0 )
_pubkey=$(skywire-cli visor pk -p | tail -n1)
#helpful text
_welcome(){
-[[ ! -z "$REWARDSKYADDR" ]] && echo "$REWARDSKYADDR" | tee /opt/skywire/local/reward.txt
-skywire-cli reward -r >> /dev/null 2>&1
-if [[ ${?} == 0 ]]; then
-_msg2 "skycoin reward address:
-${_green}$(skywire-cli reward -r)${_nc}"
-_msg2 "reward metrics:
-${_blue}https://fiber.skywire.dev/skycoin-rewards${_nc}"
-_msg2 "distribution notifications:
-${_blue}https://t.me/skywire_reward${_nc}"
-
-else
- _msg2 "reward eligibility rules:
-${_yellow}https://github.com/skycoin/skywire/blob/develop/mainnet_rules.md${_nc}"
- _msg2 "set your skycoin reward address:
-${_cyan}skywire-cli ${_yellow}reward ${_green}<skycoin-address>${_nc}"
-fi
- _msg2 "track uptime:
- ${_cyan}skywire-cli ${_yellow}ut -m0 -k ${_green}${_pubkey}${_nc}
-${_blue}https://ut.skywire.skycoin.com/uptimes?v=v2&visors=${_pubkey}${_nc}"
- _msg2 "support:
-${_blue}https://t.me/skywire${_nc}"
+#set / print reward address
+[[ ! -z "$REWARDSKYADDR" ]] && echo "$REWARDSKYADDR" | tee /opt/skywire/local/reward.txt >/dev/null
+skywire-cli reward -r >> /dev/null 2>&1 && [[ ${?} == 0 ]] && ( _msg2 "skycoin reward address:\n${_green}$(skywire-cli reward -r)${_nc}" ; _msg2 "reward metrics:\n${_blue}https://fiber.skywire.dev/skycoin-rewards${_nc}" ; _msg2 "distribution notifications:\n${_blue}https://t.me/skywire_reward${_nc}" ) || ( _msg2 "reward eligibility rules:\n${_yellow}https://github.com/skycoin/skywire/blob/develop/mainnet_rules.md${_nc}" ; _msg2 "set your skycoin reward address:\n${_cyan}skywire-cli ${_yellow}reward ${_green}<skycoin-address>${_nc}" )
+_msg2 "track uptime:\n ${_cyan}skywire-cli ${_yellow}ut -m0 -k ${_green}${_pubkey}${_nc}\n${_blue}https://ut.skywire.skycoin.com/uptimes?v=v2&visors=${_pubkey}${_nc}"
+_msg2 "support:\n${_blue}https://t.me/skywire${_nc}"
+[[ ! -z ${SKYENV} ]] && [[ "${ISHYPERVISOR}" == "true" ]] && (_msg2 "run the following command on OTHER NODES to set this one as the hypervisor:" ; echo -e "${_cyan}skywire-autoconfig ${_yellow}${_pubkey}${_nc}" ; _msg2 "to see this text again run: ${_cyan}skywire-autoconfig${_nc}")
}
-
-_msg2 "Visor Public Key:
-${_green}${_pubkey}${_nc}"
-if [[ $_ishypervisor == " -i" ]]; then
- if [[ $(ps -o comm= -p $PPID) != "sshd" ]]; then
- _msg2 "Starting now on:\n${_red}http://127.0.0.1:8000${_nc}"
-# _vpnurl=$(skywire-cli vpn url -p)
-# _msg2 "Use the vpn:\n${_red}${_vpnurl}${_nc}"
- _vpnurl="http://127.0.0.1:8000/#/vpn/${_pubkey}"
- _msg2 "Use the vpn:\n${_red}${_vpnurl}${_nc}"
- fi
- _hpvurl="Access hypervisor UI from local network here:"
- _lanips="$(ip addr show | grep -w inet | grep -v 127.0.0.1 | awk '{ print $2}' | cut -d "/" -f 1)"
- for _lanip in $_lanips
- do
- _hpvurl+="\n${_yellow}http://${_lanip}:8000${_nc}"
- done
-
- _msg2 "$_hpvurl"
- _welcome
- _msg2 "run the following command on OTHER NODES to set this one as the hypervisor:"
- echo -e "${_cyan}skywire-autoconfig ${_yellow}${_pubkey}${_nc}"
- _msg2 "to see this text again run: ${_cyan}skywire-autoconfig${_nc}"
-else
- _msg2 "${_blue}Skywire${_nc} starting in visor mode"
- _hvpk=$(grep -A 2 "\"hypervisors\": \[" /opt/skywire/skywire.json | grep -v "\[\]" | head -n2 | tail -n1 | cut -d '"' -f2)
- _msg2 "hypervisor Public Key: ${_purple}${_hvpk}${_nc}"
- _welcome
-fi
-
-if systemctl is-active --quiet ${_svc} >/dev/null; then
- if [[ ${#SKYFWD[@]} -gt 0 ]] ; then
- if command -v nc >/dev/null 2>&1; then
- while ! nc -z localhost 3435; do _msg2 "waiting for RPC" ; sleep 1; done
- for _port in ${SKYFWD[@]} ; do
- _msg2 "setting up skyfwd connection ${_yellow}skywire-cli fwd -p $_port${_nc}"
- skywire-cli fwd -p $_port
- done
- fi
- fi
-fi
-
+_msg2 "Visor Public Key:\n${_green}${_pubkey}${_nc}"
+[[ ! -z ${SKYENV} ]] && [[ "${ISHYPERVISOR}" == "true" ]] && [[ $(ps -o comm= -p $PPID) != "sshd" ]] && ( _msg2 "Hypervisor UI Starting now on:\n${_red}http://127.0.0.1:8000${_nc}" ; _vpnurl="http://127.0.0.1:8000/#/vpn/${_pubkey}" ; _msg2 "Use the vpn:\n${_red}${_vpnurl}${_nc}" )
+[[ -z ${SKYENV} ]] && [[ $_ishypervisor == " -i" ]] && [[ $(ps -o comm= -p $PPID) != "sshd" ]] && ( _msg2 "Hypervisor UI Starting now on:\n${_red}http://127.0.0.1:8000${_nc}" ; _vpnurl="http://127.0.0.1:8000/#/vpn/${_pubkey}" ; _msg2 "Use the vpn:\n${_red}${_vpnurl}${_nc}" )
+[[ ! -z ${SKYENV} ]] && [[ "${ISHYPERVISOR}" == "true" ]] && ( _hpvurl="Hypervisor UI LAN access:" ; _lanips="$(ip addr show | grep -w inet | grep -v 127.0.0.1 | awk '{ print $2}' | cut -d "/" -f 1)" ; for _lanip in $_lanips ; do _hpvurl+="\n${_yellow}http://${_lanip}:8000${_nc}" ; done ; _msg2 "$_hpvurl" )
+[[ ! -z ${SKYENV} ]] && [[ "${ISHYPERVISOR}" != "true" ]] && _msg2 "${_blue}Skywire${_nc} starting without Hypervisor UI"
+[[ ! -z ${SKYENV} ]] && [[ "${#HYPERVISORPKS[@]}" -gt 0 ]] && ( _hvpk=$(printf '%s\n' "${HYPERVISORPKS[@]}") ; _msg2 "Remote Hypervisor Public Key:\n ${_purple}${_hvpk}${_nc}" )
+_welcome
+#( _hvpk=$(grep -A 2 "\"hypervisors\": \[" /opt/skywire/skywire.json | grep -v "\[\]" | head -n2 | tail -n1 | cut -d '"' -f2) [[]] ; _msg2 "hypervisor Public Key: ${_purple}${_hvpk}${_nc}" ; _welcome )
+systemctl is-active --quiet ${_svc} >/dev/null && [[ ${#SKYFWD[@]} -gt 0 ]] && command -v nc >/dev/null 2>&1 && ( while ! nc -z localhost 3435; do _msg2 "waiting for RPC" ; sleep 1; done ; for _port in ${SKYFWD[@]} ; do _msg2 "setting up skyfwd connection ${_yellow}skywire-cli fwd -p $_port${_nc}" ; skywire-cli fwd -p $_port ; done )
#SKYREV=('-p 8000 -r 8000 -k <public-key>')
#if systemctl is-active --quiet ${_svc} >/dev/null; then
# if [[ ${#SKYREV[@]} -gt 0 ]] ; then