From 20c365e1cd2ea9fc403b754b6019480b3d6a4fdf Mon Sep 17 00:00:00 2001 From: sp3nx0r <sp3nx0r@gmail.com> Date: Thu, 3 Oct 2019 06:46:20 -0500 Subject: [PATCH] resolve conflict, adjust getopts args, add /etc/motd to backup --- scripts/update_pwnagotchi.sh | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/scripts/update_pwnagotchi.sh b/scripts/update_pwnagotchi.sh index 97b8a89..734ed4c 100644 --- a/scripts/update_pwnagotchi.sh +++ b/scripts/update_pwnagotchi.sh @@ -13,13 +13,14 @@ function usage() { cat <<EOF usage: $0 [OPTIONS] - + Note: This should be run from the pwnagotchi itself! + Options: -v # Version to update to, can be a branch or commit. (default: master) -u # Url to clone from. (default: https://github.com/evilsocket/pwnagotchi) -m # Mode to restart to. (Supported: ${SUPPORTED_RESTART_MODES[*]}; default: auto) - -b # Backup the current pwnagotchi config and hostname references. - -r # Restore the current pwnagotchi config and hostname references. (-b will be enabled.) + -b # Backup the current pwnagotchi config and hostname references, then overwrite with defaults. + -r # Restore the current pwnagotchi config and hostname references after upgrade. (-b will be enabled.) -h # Shows this help. EOF @@ -41,11 +42,7 @@ function test_github() { fi } -echo "[+] Checking prerequisites." -test_root -test_github - -while getopts ":v:u:m:b:r:h" o; do +while getopts "v:u:m:brh" o; do case "${o}" in v) VERSION="${OPTARG}" @@ -58,15 +55,15 @@ while getopts ":v:u:m:b:r:h" o; do MODE="${OPTARG}" else usage - fi - ;; + fi + ;; b) BACKUPCONFIG=1 ;; r) - BACKUPCONFIG=1 + BACKUPCONFIG=1 RESTORECONFIG=1 - ;; + ;; h) usage ;; @@ -77,6 +74,10 @@ while getopts ":v:u:m:b:r:h" o; do done shift $((OPTIND-1)) +echo "[+] Checking prerequisites." +test_root +test_github + # clean up old files, clone master, set checkout to commit if needed. echo "[+] Cloning to $GIT_FOLDER..." rm $GIT_FOLDER -rf @@ -85,27 +86,30 @@ cd $GIT_FOLDER if [ $VERSION != "master" ]; then git checkout $VERSION -q fi -echo "[+] Installing $(git log -1 --format="%h")" -echo "[+] Updating..." if [ $BACKUPCONFIG -eq 1 ]; then echo "[+] Creating backup of config.yml and hostname references" mv /root/pwnagotchi/config.yml /root/config.bak -f mv /etc/hosts /root/hosts.bak -f mv /etc/hostname /root/hostname.bak -f + mv /etc/motd /etc/motd.bak -f mv /etc/network/interfaces /root/interfaces.bak -f fi + +echo "[+] Installing $(git log -1 --format="%h")" rm /root/pwnagotchi -rf # ensures old files are removed rsync -aPq $GIT_FOLDER/sdcard/boot/* /boot/ rsync -aPq $GIT_FOLDER/sdcard/rootfs/* / cd /tmp rm $GIT_FOLDER -rf + if [ $RESTORECONFIG -eq 1 ]; then echo "[+] Restoring backup of config.yml and hostname references" mv /root/config.yml.bak /root/pwnagotchi/config.yml -f mv /root/hosts.bak /etc/hosts -f mv /root/hostname.bak /etc/hostname -f mv /root/interfaces.bak /etc/network/interfaces -f + mv /etc/motd.bak /etc/motd -f fi echo "[+] Restarting pwnagotchi in $MODE mode. $( screen -X -S pwnagotchi quit)"