54 lines
		
	
	
		
			1016 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1016 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
 |