#!/bin/bash
# trap ctrl-c and call ctrl_c()
trap ctrl_c INT
function ctrl_c() {
popd > /dev/null
exit
}
# A POSIX variable
OPTIND=1 # Reset in case getopts has been used previously in the shell.
# Initialize our own variables:
GIT_BRANCH="master"
MANUAL_BRANCH_SET=false
show_help(){
echo "*** PoshC2 Update Script ***"
echo "Usage:"
echo "posh-update -b <git branch>"
echo ""
echo "Default is the master branch"
}
while getopts "h?b:" opt; do
case "$opt" in
h|\?)
show_help
exit 0
;;
b) GIT_BRANCH="$OPTARG"
MANUAL_BRANCH_SET=true
;;
esac
done
source /usr/local/bin/_posh-common
get_posh_dir
pushd $POSH_DIR >/dev/null
if [ "$?" -eq "0" ]; then
if [ "$MANUAL_BRANCH_SET" == "false" ]; then
GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
fi
echo ""
echo -e """\033[92m
__________ .__. _________ ________
\_______ \____ _____| |__ \_ ___ \ \_____ \\
| ___/ _ \/ ___/ | \ / \ \/ / ____/
| | ( <_> )___ \| Y \ \ \____/ \\
|____| \____/____ >___| / \______ /\_______ \\
\/ \/ \/ \/
================= www.PoshC2.co.uk ================"""
echo ""
echo "[+] Updating PoshC2"
echo ""
if [[ $(id -u) -ne 0 ]]; then
echo -e "You must run this installer as root.\nQuitting!";
exit 1;
fi
echo ""
echo "[+] Updating Posh Installation to latest $GIT_BRANCH"
git fetch
git reset --hard origin/"$GIT_BRANCH"
echo ""
echo "[+] Running Install script"
./Install.sh -b "$GIT_BRANCH" -p "$POSH_DIR"
echo ""
echo "[+] Update complete"
echo ""
popd > /dev/null
fi