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