65 lines
		
	
	
		
			971 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			971 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| COURSE=$(hostname)
 | |
| GITEASSH="ssh://git@focs.ji.sjtu.edu.cn:2222"
 | |
| 
 | |
| # when container starts network takes some time to come up
 | |
| net_wait() {
 | |
| 
 | |
| 	echo -n "Waiting for network"
 | |
| 	while ! wget -q --spider https://focs.ji.sjtu.edu.cn; do 
 | |
| 		echo -n .
 | |
| 		sleep 1
 | |
| 	done
 | |
| 	echo
 | |
| }
 | |
| 
 | |
| # install config files from course-joj repo
 | |
| import_config() {
 | |
|  
 | |
| 	echo "Importing $COURSE JOJ configuration"
 | |
| 
 | |
| 	cd /root
 | |
| 	git clone -b master $GITEASSH/$COURSE/$COURSE-joj.git 
 | |
| 
 | |
| 	cd $COURSE-joj
 | |
| 	rsync -r etc/ /etc
 | |
| 
 | |
| 	. /etc/joj-container-config.conf
 | |
| 
 | |
| }
 | |
| 
 | |
| services_restart() {
 | |
| 
 | |
| 	echo "Restarting services"
 | |
| 
 | |
| 	for i in $SERVICES; do 
 | |
| 		systemctl restart $i
 | |
| 	done
 | |
| 
 | |
| }
 | |
| 
 | |
| software_install() {
 | |
| 
 | |
| 	echo "Installing $COURSE software"
 | |
| 
 | |
|     apt-get update && apt-get upgrade -y
 | |
|     apt-get install -y $PACKAGES && apt-get clean
 | |
| 
 | |
| }
 | |
| 
 | |
| custom_commands() {
 | |
| 	for((i=0; i<${#COMMANDS[@]}; i++)); do
 | |
| 	  eval ${COMMANDS[i]};
 | |
|     done
 | |
| }
 | |
| 
 | |
| net_wait
 | |
| 
 | |
| import_config
 | |
| software_install
 | |
| services_restart
 | |
| custom_commands
 | |
| 
 | |
| exit 0
 |