Modules are located on the `modules` folder on the project. By default, kickstart will put itself on the `compile/modules/kickstart` before any folder is linked there as well. This give the possibility of overriding which kickstart project will be deployed with you. Kickstart is treated as an special folder, given that the projects requires its functions. So, it is loaded before all of the modules, and skiped looping over the `modules` folder.
		
			
				
	
	
		
			54 lines
		
	
	
		
			988 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			988 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash -e
 | 
						|
 | 
						|
module_loading=$(cat <<MODULE
 | 
						|
current_dir=\$(pwd)
 | 
						|
cd modules/kickstart
 | 
						|
source install.sh
 | 
						|
cd \$current_dir
 | 
						|
 | 
						|
for module in modules/*; do
 | 
						|
  if [ ! \$module = module/kickstart ]; then
 | 
						|
    cd \$module
 | 
						|
    source install.sh
 | 
						|
    cd \$current_dir
 | 
						|
  fi
 | 
						|
done
 | 
						|
MODULE
 | 
						|
)
 | 
						|
 | 
						|
clean_up_compile_folder() {
 | 
						|
  [ -d compile ] && rm -rf compile
 | 
						|
  mkdir -p compile
 | 
						|
}
 | 
						|
 | 
						|
link_folder() {
 | 
						|
  [[ -h compile/$1 ]] || ln -s ../$1 compile/$1
 | 
						|
}
 | 
						|
 | 
						|
link_modules() {
 | 
						|
  mkdir -p compile/modules
 | 
						|
 | 
						|
  ln -s `kickstart root-dir`/kickstart compile/modules/kickstart
 | 
						|
 | 
						|
  if [ -d modules ]; then
 | 
						|
    for module in modules/*; do
 | 
						|
      ln -s `pwd`/$module compile/$module
 | 
						|
    done
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
compile_install() {
 | 
						|
  cat <( echo -e "$module_loading" ) install.sh > compile/install.sh
 | 
						|
  for role in $@; do
 | 
						|
    echo "source roles/${role}.sh" >> compile/install.sh
 | 
						|
  done
 | 
						|
}
 | 
						|
 | 
						|
clean_up_compile_folder
 | 
						|
link_folder files
 | 
						|
link_folder recipes
 | 
						|
link_folder roles
 | 
						|
link_modules
 | 
						|
compile_install $@
 | 
						|
echo -e "\necho Done" >> compile/install.sh
 |