fish/functions/git.fish

39 lines
2.5 KiB
Fish

# ╭────────────────────────────────────────────────────────────────────────────────────────────╮
# │ 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 --name $name $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 --name $name $repo $path
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