#!/usr/bin/env bash main () { me=`basename "$0"` HelpStatement $1 UninstallQ $1 ## printThis ## check_for_dependencies ## download_the_repo Install_tools "S" } function UninstallQ() { if [ "$1" == "-rm" ] || [ "$1" == "--rm" ]; then echo "TODO Write something to unintsall" Install_tools "D" fi } HelpStatement() { if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then echo -e "To uninstall do `basename $0` --rm is the script name, If you are on Arch stow 2.3.1-2 is broken, downgrade with \e[1;35m sudo pacman -U https://archive.archlinux.org/packages/s/stow/stow-2.2.2-5-any.pkg.tar.xz \e[0m See this for more information: \e[1;34m https://github.com/aspiers/stow/issues/65 \e[0m " fi } printThis () { echo "This Script will print to the terminal for review, press any key to continue" read -d '' -s -n1 cd $(dirname "$0") pwd me=`basename "$0"` safePrint $me echo "Are you happy to proceed? Press y to continue" read -d '' -s -n1 proceedQ if [ "$proceedQ" != "y" ]; then exit 0 fi } safePrint () { if hash highlight 2>/dev/null; then highlight "$@" else cat "$@" fi } check_for_dependencies () { echo "Press Any Key to Check for dependencies, press the c Key to Skip this" read -d '' -s -n1 CheckDepQ if [ "$CheckDepQ" == "c" ]; then return fi for i in ${StringArray[@]}; do command -v "$i" >/dev/null 2>&1 || { echo >&2 "I require $i but it's not installed. Aborting."; exit 1; } done echo "All Dependencies Satisfied" } download_the_repo () { echo "Press y to download the repo" read -d '' -s -n1 downloadQ if [ "$downloadQ" != "y" ]; then return fi mkdir -p $HOME/DotFiles/ cd $HOME/DotFiles if [[ -d ".git" ]]; then echo "Detected a Git Repo, Press y to add a submodule or any key to exit" read -d '' -s -n1 CheckDepQ if [ "$CheckDepQ" != "y" ]; then echo "You pressed any key" fi git submodule add https://github.com/RyanGreenup/cadmus && echo "Submodule succesfully added" elif [[ -f ".git" ]]; then echo "You have a file called .git In there, delete that first."; else git clone https://github.com/RyanGreenup/cadmus fi echo "Repository is downloaded" } Install_tools () { DIR=$(dirname "$0") cd "$DIR" && cd ../ echo "Stow package $DIR, target $HOME" stow -t $HOME -$1 "$(basename "$DIR")" } # Declare an array of string with type declare -a StringArray=("R" "highlight" "node" "nvim" "fzf" "code" "sk" "rg" "perl" "stow" "python" "tmsu" "ranger" "mdcat" "xclip" "sd" "fd" "sed" "cut" "grep" "find" "realpath" ) # Iterate the string array using for loop ## main "$@" exit 0 ## TODO Help ## TODO Uninstall