43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
# This script should be in the 'Scripts' directory under the git repository's root.
 | 
						|
cd "${BASH_SOURCE%/*}/.."
 | 
						|
shopt -s extglob
 | 
						|
 | 
						|
 | 
						|
## LisuUI
 | 
						|
#
 | 
						|
## Submodules that need to be checked out.
 | 
						|
dependencies=( External/Pearl External/Pearl:External/jrswizzle External/Pearl:External/uicolor-utilities )
 | 
						|
 | 
						|
## Custom migration.
 | 
						|
# None yet.
 | 
						|
 | 
						|
 | 
						|
################################################################################
 | 
						|
isCheckedOut() {
 | 
						|
    local modulePath=$1
 | 
						|
    ! git submodule status | grep -q "^-[^ ]* $modulePath"
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Check out our missing dependencies
 | 
						|
for dependency in "${dependencies[@]}"; do
 | 
						|
    [[ $dependency = *:* ]] && root=${dependency%%:*} || root=.
 | 
						|
    path=${dependency#*:}
 | 
						|
    ( cd "$root"; git submodule update --init "$path" )
 | 
						|
done
 | 
						|
 | 
						|
 | 
						|
# Update our modules
 | 
						|
# git submodule sync -- A bug causes this to init ALL external dependencies.
 | 
						|
git submodule sync $(git submodule status | awk '/^ / { print $2 }')
 | 
						|
git submodule update
 | 
						|
 | 
						|
 | 
						|
# Our modules may define a custom update script, if so, run it.
 | 
						|
find !(Scripts)/ -name "${BASH_SOURCE##*/}" -exec {} \;
 | 
						|
 | 
						|
 | 
						|
# Finally, for our modules that haven't got a custom update script, update them recursively.
 | 
						|
git submodule update --recursive --rebase
 |