24 lines
		
	
	
	
		
			875 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			875 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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.'
 |