# ╭────────────────────────────────────────────────────────────────────────────────────────────╮ # │ Define function gsa (to ask the user which submodule to clone to which path and which name │ # ╰────────────────────────────────────────────────────────────────────────────────────────────╯ function gsa # ─< Prompt the user to enter the repository URL to add as a submodule >──────────────────── echo "-- enter the repository to add as a submodule --" read -l repo # ─< Prompt the user to enter the branch to checkout (e.g., main, master) >───────────────── echo "-- enter the branch to checkout (main/master..) --" read -l branch # ─< Prompt the user to enter the relative path where the submodule will be cloned >──────── # ─< Advise not to use the leading / or ./ >──────────────────────────────────────────────── echo "-- enter the relative path, where the submodule will be cloned to. (don't use fist / or ./) --" read -l -S path # echo "-- enter a name for the submodule --" # read -l name # ─< Ask the user for confirmation if the constructed command looks correct >─────────────── echo "git submodule add --branch $branch $repo $path" echo "-- does this command look right to you? [y/n] --" read -l comm # ─< Switch statement to handle the user's confirmation input >───────────────────────────── switch $comm # ─< If the user inputs 'y' or 'Y', execute the git submodule add command >───────────────── case 'y' 'Y' git submodule add --branch $branch $repo $path git submodule update --init --recursive git add . git commit -m "Addet $name as a submodule" git push # ─< If the user inputs 'n' or 'N', notify them to try again >────────────────────────────── case 'n' 'N' echo "-- all right, just try again :) --" end end