diff --git a/deploy.sh b/deploy.sh index 75ea646..139c7b1 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,16 +1,57 @@ #!/usr/bin/env bash -THIS="$(pwd)" +THIS="$(dirname "$(readlink -fm "$0")")" +CLEANUP=true -_cleanup() { - echo -e "#!/usr/bin/env bash" >> /tmp/deploy_cleanup.sh - echo -e "rm -rf ${THIS}" >> /tmp/deploy_cleanup.sh - echo -e "crontab -l | sed '/# REF:deploy_cleanup:REF/Q' | crontab -" >> /tmp/deploy_cleanup.sh - chmod +x /tmp/deploy_cleanup.sh - echo -e "$(crontab -l)\n# REF:deploy_cleanup:REF\n* * * * *\t/tmp/deploy_cleanup.sh" | crontab - +_arguments() { + for PARM in "$@"; do + if [ "${PARM}" = "--no-cleanup" ]; then + CLEANUP=false + elif [ "${PARM}" = "-h" ] || [ "${PARM}" = "--help" ]; then + _help + exit 0 + fi + done +} + +_help() { + echo "Usage: $(readlink -fm "$0") [-h | --help] [--no-cleanup]" + echo + echo "Options:" + echo " -h | --help : Prints this help message and quits" + echo " --no-cleanup: Does not clean the source folder after adding the bash overrides" + echo } _bash_overrides() { cp -r bashrc_overrides ~/.bashrc_overrides - echo -e "if [ -f ~/.bashrc_overrides/_all ]; then\n . ~/.bashrc_overrides\nfi" >> ~/.bashrc + echo "#REF:bashrc_overrides:REF" >> ~/.bashrc + echo "if [ -f ~/.bashrc_overrides/_all ]; then" >> ~/.bashrc + echo " . ~/.bashrc_overrides" >> ~/.bashrc + echo "fi" >> ~/.bashrc } + +_cleanup() { + rm -rf ${THIS} +} + +_main() { + _arguments "$@" + + if [ ! -z "$(grep "#REF:bashrc_overrides:REF" ~/.bashrc)" ]; then + echo "bash overrides already in place" + echo "skipping..." + echo + else + _bash_overrides + echo "bash overrides added" + echo + fi + + if [ "${CLEANUP}" = true ]; then + echo "cleaning up..." + _cleanup + fi +} + +_main "$@"