NDG_VERSION=v0.8.1 NDG_URL_AARCH64=https://github.com/nakamochi/ndg/releases/download/v0.8.1/ndg-v0.8.1-aarch64.tar.gz NDG_SHA256_AARCH64=d67fd26149dd13900125a6ebfc527028110f8f71dfb2ae311f7a9ca0f99ceff0 NDG_HOME=/home/uiuser NDG_BINDIR=$NDG_HOME/$NDG_VERSION ndg_bin_install() { cd $NDG_HOME test -f $NDG_BINDIR/nd && return 0; local targz="ndg-$NDG_VERSION.tar.gz" curl -sSL -o "$targz" "$NDG_URL_AARCH64" if [ $? -ne 0 ]; then printf "ERROR: unable to download $NDG_URL_AARCH64\n" 1>&2 return 1 fi printf "$NDG_SHA256_AARCH64 $targz" | sha256sum --check [ $? -ne 0 ] && return 1 mkdir -p $NDG_BINDIR tar -C $NDG_BINDIR --no-same-owner -xf "$targz" rm -f "$targz" return $? } ndg_svc_install() { local svdir=/etc/sv/nd mkdir -p $svdir if [ ! -f $svdir/log/run ]; then mkdir -p $svdir/log ln -sfT /usr/bin/vlogger $svdir/log/run fi cat < $svdir/finish.new #!/bin/sh # workaround https://github.com/nakamochi/ndg/issues/12 pkill -9 ngui EOF chmod +x $svdir/finish.new test -f $svdir/finish && diff $svdir/finish $svdir/finish.new if [ $? -ne 0 ]; then mv $svdir/finish.new $svdir/finish fi rm -f $svdir/finish.new cat < $svdir/run.new #!/bin/sh exec $NDG_BINDIR/nd -conf /home/uiuser/conf.json -gui $NDG_BINDIR/ngui -gui-user uiuser -wpa /var/run/wpa_supplicant/wlan0 2>&1 EOF chmod +x $svdir/run.new test -f $svdir/run && diff $svdir/run $svdir/run.new if [ $? -ne 0 ]; then mv $svdir/run.new $svdir/run # don't touch the actual service if on manual control - the down file test -f $svdir/down && return 0 sv stop nd || printf "ERROR: sv stop nd failed\n" 1>&2 sv start nd || printf "ERROR: sv start nd failed\n" 1>&2 fi rm -f $svdir/run.new } ndg_apply() { ndg_bin_install || return 1 ndg_svc_install || return 1 }