Merge pull request from massar/update_dos_crlf

Fix CRLF line endings...
This commit is contained in:
evilsocket 2019-10-02 19:05:26 +02:00 committed by GitHub
commit 80e0c2f3ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,111 +1,111 @@
#!/bin/bash #!/bin/bash
# Default variables # Default variables
GIT_FOLDER="/tmp/pwnagotchi" GIT_FOLDER="/tmp/pwnagotchi"
GIT_URL="https://github.com/evilsocket/pwnagotchi/" GIT_URL="https://github.com/evilsocket/pwnagotchi/"
VERSION="master" VERSION="master"
SUPPORTED_RESTART_MODES=( 'auto' 'manual' ) SUPPORTED_RESTART_MODES=( 'auto' 'manual' )
MODE="auto" MODE="auto"
BACKUPCONFIG=0 BACKUPCONFIG=0
RESTORECONFIG=0 RESTORECONFIG=0
# Functions # Functions
function usage() { function usage() {
cat <<EOF cat <<EOF
usage: $0 [OPTIONS] usage: $0 [OPTIONS]
Options: Options:
-v # Version to update to, can be a branch or commit. (default: master) -v # Version to update to, can be a branch or commit. (default: master)
-u # Url to clone from. (default: https://github.com/evilsocket/pwnagotchi) -u # Url to clone from. (default: https://github.com/evilsocket/pwnagotchi)
-m # Mode to restart to. (Supported: ${SUPPORTED_RESTART_MODES[*]}; default: auto) -m # Mode to restart to. (Supported: ${SUPPORTED_RESTART_MODES[*]}; default: auto)
-b # Backup the current pwnagotchi config. -b # Backup the current pwnagotchi config.
-r # Restore the current pwnagotchi config. (-b will be enabled.) -r # Restore the current pwnagotchi config. (-b will be enabled.)
-h # Shows this help. -h # Shows this help.
EOF EOF
exit 0 exit 0
} }
function test_root() { function test_root() {
if ! [ $(id -u) = 0 ]; then if ! [ $(id -u) = 0 ]; then
echo "[!] This script must be run as root." echo "[!] This script must be run as root."
exit 1 exit 1
fi fi
} }
function test_github() { function test_github() {
wget -q --spider $GIT_URL wget -q --spider $GIT_URL
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "[!] Cannot reach github. This script requires internet access, ensure connection sharing is working." echo "[!] Cannot reach github. This script requires internet access, ensure connection sharing is working."
exit 2 exit 2
fi fi
} }
echo "[+] Checking prerequisites." echo "[+] Checking prerequisites."
test_root test_root
test_github test_github
while getopts ":v:u:m:b:r:h" o; do while getopts ":v:u:m:b:r:h" o; do
case "${o}" in case "${o}" in
v) v)
VERSION="${OPTARG}" VERSION="${OPTARG}"
;; ;;
u) u)
GIT_URL="${OPTARG}" GIT_URL="${OPTARG}"
;; ;;
m) m)
if [[ "${SUPPORTED_RESTART_MODES[*]}" =~ ${OPTARG} ]]; then if [[ "${SUPPORTED_RESTART_MODES[*]}" =~ ${OPTARG} ]]; then
MODE="${OPTARG}" MODE="${OPTARG}"
else else
usage usage
fi fi
;; ;;
b) b)
BACKUPCONFIG=1 BACKUPCONFIG=1
;; ;;
r) r)
BACKUPCONFIG=1 BACKUPCONFIG=1
RESTORECONFIG=1 RESTORECONFIG=1
;; ;;
h) h)
usage usage
;; ;;
*) *)
usage usage
;; ;;
esac esac
done done
shift $((OPTIND-1)) shift $((OPTIND-1))
# clean up old files, clone master, set checkout to commit if needed. # clean up old files, clone master, set checkout to commit if needed.
echo "[+] Cloning to $GIT_FOLDER..." echo "[+] Cloning to $GIT_FOLDER..."
rm $GIT_FOLDER -rf rm $GIT_FOLDER -rf
git clone $GIT_URL $GIT_FOLDER -q git clone $GIT_URL $GIT_FOLDER -q
cd $GIT_FOLDER cd $GIT_FOLDER
if [ $VERSION != "master" ]; then if [ $VERSION != "master" ]; then
git checkout $VERSION -q git checkout $VERSION -q
fi fi
echo "[+] Installing $(git log -1 --format="%h")" echo "[+] Installing $(git log -1 --format="%h")"
echo "[+] Updating..." echo "[+] Updating..."
if [ $BACKUPCONFIG -eq 1 ]; then if [ $BACKUPCONFIG -eq 1 ]; then
echo "[+] Creating backup of config.yml" echo "[+] Creating backup of config.yml"
mv /root/pwnagotchi/config.yml /root/config.yml.bak -f mv /root/pwnagotchi/config.yml /root/config.yml.bak -f
fi fi
rm /root/pwnagotchi -rf # ensures old files are removed rm /root/pwnagotchi -rf # ensures old files are removed
rsync -aPq $GIT_FOLDER/sdcard/boot/* /boot/ rsync -aPq $GIT_FOLDER/sdcard/boot/* /boot/
rsync -aPq $GIT_FOLDER/sdcard/rootfs/* / rsync -aPq $GIT_FOLDER/sdcard/rootfs/* /
cd /tmp cd /tmp
rm $GIT_FOLDER -rf rm $GIT_FOLDER -rf
if [ $RESTORECONFIG -eq 1 ]; then if [ $RESTORECONFIG -eq 1 ]; then
echo "[+] Restoring backup of config.yml" echo "[+] Restoring backup of config.yml"
mv /root/config.yml.bak /root/pwnagotchi/config.yml -f mv /root/config.yml.bak /root/pwnagotchi/config.yml -f
fi fi
echo "[+] Restarting pwnagotchi in $MODE mode. $( screen -X -S pwnagotchi quit)" echo "[+] Restarting pwnagotchi in $MODE mode. $( screen -X -S pwnagotchi quit)"
if [ $MODE == "auto" ]; then if [ $MODE == "auto" ]; then
sudo -H -u root /usr/bin/screen -dmS pwnagotchi -c /root/pwnagotchi/data/screenrc.auto sudo -H -u root /usr/bin/screen -dmS pwnagotchi -c /root/pwnagotchi/data/screenrc.auto
elif [ $MODE == "manual" ]; then elif [ $MODE == "manual" ]; then
sudo -H -u root /usr/bin/screen -dmS pwnagotchi -c /root/pwnagotchi/data/screenrc.manual sudo -H -u root /usr/bin/screen -dmS pwnagotchi -c /root/pwnagotchi/data/screenrc.manual
fi fi
echo "[+] Finished" echo "[+] Finished"