diff options
author | Moses Narrow | 2023-07-29 17:48:11 -0500 |
---|---|---|
committer | Moses Narrow | 2023-07-29 17:48:11 -0500 |
commit | 96d96b73957c72f9a82eb906a787a8197f087998 (patch) | |
tree | b22d432f966755a17bea06f9f02ae4bfadcc6e71 | |
parent | a5eb36fef1e857b753dc02a6b213526be6e01f4a (diff) | |
download | aur-96d96b73957c72f9a82eb906a787a8197f087998.tar.gz |
autoconfig script optimization ; bump pkgrel
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 4 | ||||
-rw-r--r-- | cc.deb.PKGBUILD | 2 | ||||
-rw-r--r-- | cc.dev.PKGBUILD | 2 | ||||
-rwxr-xr-x | skywire-autoconfig | 445 |
5 files changed, 133 insertions, 324 deletions
@@ -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 @@ -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 |