#!/usr/bin/env bash

test -z "$1" && echo "submodule required" 1>&2 && exit 1
cd "$(git root)"
test ! -f .gitmodules && echo ".gitmodules file not found" 1>&2 && exit 2

NAME="$(echo "$1" | sed 's/\/$//g')"
test -z \
    "$(git config --file=.gitmodules submodule."$NAME".url)" \
    && echo "submodule not found" 1>&2 && exit 3

# 1. Delete the relevant section from .git/config and clean submodule files
git submodule deinit -f "$NAME" || exit 4
rmdir "$NAME"
rm -rf .git/modules/"$NAME"
# 2. Delete the relevant line from .gitmodules
git config --file=.gitmodules --remove-section submodule."$NAME"
git add .gitmodules
# 3. Run git rm --cached path_to_submodule
git rm --cached -rf "$NAME"
# 4. Need to confirm and commit the changes for yourself
echo
echo "Now submodule $NAME is deleted."
echo 'Confirm with `git submodule status` and commit the changes for yourself.'
