|  | @@ -39,111 +39,112 @@ FRIENDS_MIRRORS_SERVER=
 | 
	
		
			
			| 39 | 39 |  FRIENDS_MIRRORS_SSH_PORT=2222
 | 
	
		
			
			| 40 | 40 |  
 | 
	
		
			
			| 41 | 41 |  function create_repo_sources {
 | 
	
		
			
			| 42 |  | -	if grep -Fxq "create_repo_sources" $COMPLETION_FILE; then
 | 
	
		
			
			| 43 |  | -		return
 | 
	
		
			
			| 44 |  | -	fi
 | 
	
		
			
			| 45 |  | -	rm -rf /var/lib/apt/lists/*
 | 
	
		
			
			| 46 |  | -	apt-get clean
 | 
	
		
			
			| 47 |  | -
 | 
	
		
			
			| 48 |  | -	echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION} main" > /etc/apt/sources.list
 | 
	
		
			
			| 49 |  | -	echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION} main" >> /etc/apt/sources.list
 | 
	
		
			
			| 50 |  | -	echo '' >> /etc/apt/sources.list
 | 
	
		
			
			| 51 |  | -	echo "deb http://security.debian.org/ ${DEBIAN_VERSION}/updates main" >> /etc/apt/sources.list
 | 
	
		
			
			| 52 |  | -	echo "deb-src http://security.debian.org/ ${DEBIAN_VERSION}/updates main" >> /etc/apt/sources.list
 | 
	
		
			
			| 53 |  | -	echo '' >> /etc/apt/sources.list
 | 
	
		
			
			| 54 |  | -	echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-updates main" >> /etc/apt/sources.list
 | 
	
		
			
			| 55 |  | -	echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-updates main" >> /etc/apt/sources.list
 | 
	
		
			
			| 56 |  | -	echo '' >> /etc/apt/sources.list
 | 
	
		
			
			| 57 |  | -	echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-backports main" >> /etc/apt/sources.list
 | 
	
		
			
			| 58 |  | -	echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-backports main" >> /etc/apt/sources.list
 | 
	
		
			
			| 59 |  | -
 | 
	
		
			
			| 60 |  | -	apt-get update
 | 
	
		
			
			| 61 |  | -	apt-get -y install apt-transport-https
 | 
	
		
			
			| 62 |  | -
 | 
	
		
			
			| 63 |  | -	echo 'create_repo_sources' >> $COMPLETION_FILE
 | 
	
		
			
			|  | 42 | +    if grep -Fxq "create_repo_sources" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 43 | +        return
 | 
	
		
			
			|  | 44 | +    fi
 | 
	
		
			
			|  | 45 | +    rm -rf /var/lib/apt/lists/*
 | 
	
		
			
			|  | 46 | +    apt-get clean
 | 
	
		
			
			|  | 47 | +
 | 
	
		
			
			|  | 48 | +    echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION} main" > /etc/apt/sources.list
 | 
	
		
			
			|  | 49 | +    echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION} main" >> /etc/apt/sources.list
 | 
	
		
			
			|  | 50 | +    echo '' >> /etc/apt/sources.list
 | 
	
		
			
			|  | 51 | +    echo "deb http://security.debian.org/ ${DEBIAN_VERSION}/updates main" >> /etc/apt/sources.list
 | 
	
		
			
			|  | 52 | +    echo "deb-src http://security.debian.org/ ${DEBIAN_VERSION}/updates main" >> /etc/apt/sources.list
 | 
	
		
			
			|  | 53 | +    echo '' >> /etc/apt/sources.list
 | 
	
		
			
			|  | 54 | +    echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-updates main" >> /etc/apt/sources.list
 | 
	
		
			
			|  | 55 | +    echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-updates main" >> /etc/apt/sources.list
 | 
	
		
			
			|  | 56 | +    echo '' >> /etc/apt/sources.list
 | 
	
		
			
			|  | 57 | +    echo "deb http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-backports main" >> /etc/apt/sources.list
 | 
	
		
			
			|  | 58 | +    echo "deb-src http://${DEBIAN_REPO}/debian/ ${DEBIAN_VERSION}-backports main" >> /etc/apt/sources.list
 | 
	
		
			
			|  | 59 | +
 | 
	
		
			
			|  | 60 | +    apt-get update
 | 
	
		
			
			|  | 61 | +    apt-get -y install apt-transport-https
 | 
	
		
			
			|  | 62 | +
 | 
	
		
			
			|  | 63 | +    echo 'create_repo_sources' >> $COMPLETION_FILE
 | 
	
		
			
			| 64 | 64 |  }
 | 
	
		
			
			| 65 | 65 |  
 | 
	
		
			
			| 66 | 66 |  function read_repo_servers {
 | 
	
		
			
			| 67 |  | -	if [ -f $CONFIGURATION_FILE ]; then
 | 
	
		
			
			| 68 |  | -		if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 69 |  | -			FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 70 |  | -		fi
 | 
	
		
			
			| 71 |  | -		if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 72 |  | -			FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 73 |  | -		fi
 | 
	
		
			
			| 74 |  | -		if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 75 |  | -			MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 76 |  | -		fi
 | 
	
		
			
			| 77 |  | -		if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 78 |  | -			FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 79 |  | -		fi
 | 
	
		
			
			| 80 |  | -	fi
 | 
	
		
			
			| 81 |  | -
 | 
	
		
			
			| 82 |  | -	if [ ! $FRIENDS_MIRRORS_SERVER ]; then
 | 
	
		
			
			| 83 |  | -		return
 | 
	
		
			
			| 84 |  | -	fi
 | 
	
		
			
			| 85 |  | -	if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
 | 
	
		
			
			| 86 |  | -		return
 | 
	
		
			
			| 87 |  | -	fi
 | 
	
		
			
			| 88 |  | -
 | 
	
		
			
			| 89 |  | -	MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
 | 
	
		
			
			| 90 |  | -	if [ ! -f $MAIN_COMMAND ]; then
 | 
	
		
			
			| 91 |  | -		MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
 | 
	
		
			
			| 92 |  | -	fi
 | 
	
		
			
			| 93 |  | -
 | 
	
		
			
			| 94 |  | -	REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
 | 
	
		
			
			| 95 |  | -
 | 
	
		
			
			| 96 |  | -	for line in "${REPOS[@]}"
 | 
	
		
			
			| 97 |  | -	do
 | 
	
		
			
			| 98 |  | -		repo_name=$(echo "$line" | awk -F '=' '{print $1}')
 | 
	
		
			
			| 99 |  | -		mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
 | 
	
		
			
			| 100 |  | -		friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
 | 
	
		
			
			| 101 |  | -		${repo_name}="${friends_repo_url}"
 | 
	
		
			
			| 102 |  | -	done
 | 
	
		
			
			|  | 67 | +    read_config_param FRIENDS_MIRRORS_SERVER
 | 
	
		
			
			|  | 68 | +    read_config_param FRIENDS_MIRRORS_SSH_PORT
 | 
	
		
			
			|  | 69 | +    read_config_param MY_MIRRORS_PASSWORD
 | 
	
		
			
			|  | 70 | +    read_config_param FRIENDS_MIRRORS_PASSWORD
 | 
	
		
			
			|  | 71 | +
 | 
	
		
			
			|  | 72 | +    if [ ! $FRIENDS_MIRRORS_SERVER ]; then
 | 
	
		
			
			|  | 73 | +        return
 | 
	
		
			
			|  | 74 | +    fi
 | 
	
		
			
			|  | 75 | +    if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
 | 
	
		
			
			|  | 76 | +        return
 | 
	
		
			
			|  | 77 | +    fi
 | 
	
		
			
			|  | 78 | +
 | 
	
		
			
			|  | 79 | +    APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
 | 
	
		
			
			|  | 80 | +    for f in $APP_FILES
 | 
	
		
			
			|  | 81 | +    do
 | 
	
		
			
			|  | 82 | +        REPOS=($(cat ${f} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
 | 
	
		
			
			|  | 83 | +        for line in "${REPOS[@]}"
 | 
	
		
			
			|  | 84 | +        do
 | 
	
		
			
			|  | 85 | +            repo_name=$(echo "$line" | awk -F '=' '{print $1}')
 | 
	
		
			
			|  | 86 | +            mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
 | 
	
		
			
			|  | 87 | +            friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
 | 
	
		
			
			|  | 88 | +            export ${repo_name}="${friends_repo_url}"
 | 
	
		
			
			|  | 89 | +        done
 | 
	
		
			
			|  | 90 | +    done
 | 
	
		
			
			|  | 91 | +
 | 
	
		
			
			|  | 92 | +    APP_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
 | 
	
		
			
			|  | 93 | +    for f in $APP_FILES
 | 
	
		
			
			|  | 94 | +    do
 | 
	
		
			
			|  | 95 | +        REPOS=($(cat ${f} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
 | 
	
		
			
			|  | 96 | +        for line in "${REPOS[@]}"
 | 
	
		
			
			|  | 97 | +        do
 | 
	
		
			
			|  | 98 | +            repo_name=$(echo "$line" | awk -F '=' '{print $1}')
 | 
	
		
			
			|  | 99 | +            mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
 | 
	
		
			
			|  | 100 | +            friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
 | 
	
		
			
			|  | 101 | +            export ${repo_name}="${friends_repo_url}"
 | 
	
		
			
			|  | 102 | +        done
 | 
	
		
			
			|  | 103 | +    done
 | 
	
		
			
			| 103 | 104 |  }
 | 
	
		
			
			| 104 | 105 |  
 | 
	
		
			
			| 105 | 106 |  # A command to create a git repository for a project
 | 
	
		
			
			| 106 | 107 |  function create_git_project {
 | 
	
		
			
			| 107 |  | -	if grep -Fxq "create_git_project" $COMPLETION_FILE; then
 | 
	
		
			
			| 108 |  | -		return
 | 
	
		
			
			| 109 |  | -	fi
 | 
	
		
			
			| 110 |  | -	apt-get -y install git
 | 
	
		
			
			| 111 |  | -
 | 
	
		
			
			| 112 |  | -	echo '#!/bin/bash' > /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 113 |  | -	echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 114 |  | -	echo 'GIT_PROJECT_NAME=$1' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 115 |  | -	echo 'if [ ! $GIT_PROJECT_NAME ]; then' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 116 |  | -	echo '  echo "Please specify a project name, without any spaces"' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 117 |  | -	echo '  exit 1' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 118 |  | -	echo 'fi' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 119 |  | -	echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 120 |  | -	echo 'if [ ! -d /home/$USER/projects/$GIT_PROJECT_NAME ]; then' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 121 |  | -	echo '  mkdir -p /home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 122 |  | -	echo 'fi' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 123 |  | -	echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 124 |  | -	echo 'cd /home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 125 |  | -	echo 'git init --bare' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 126 |  | -	echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 127 |  | -	echo -n 'echo "Your project has been created, ' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 128 |  | -	echo 'use the following command to clone the repository"' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 129 |  | -	echo -n "  git clone ssh://$MY_USERNAME@$DEFAULT_DOMAIN_NAME:$SSH_PORT" >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 130 |  | -	echo '/home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 131 |  | -	echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 132 |  | -	echo 'exit 0' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 133 |  | -	chmod +x /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			| 134 |  | -
 | 
	
		
			
			| 135 |  | -	echo 'create_git_project' >> $COMPLETION_FILE
 | 
	
		
			
			|  | 108 | +    if grep -Fxq "create_git_project" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 109 | +        return
 | 
	
		
			
			|  | 110 | +    fi
 | 
	
		
			
			|  | 111 | +    apt-get -y install git
 | 
	
		
			
			|  | 112 | +
 | 
	
		
			
			|  | 113 | +    echo '#!/bin/bash' > /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 114 | +    echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 115 | +    echo 'GIT_PROJECT_NAME=$1' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 116 | +    echo 'if [ ! $GIT_PROJECT_NAME ]; then' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 117 | +    echo '  echo "Please specify a project name, without any spaces"' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 118 | +    echo '  exit 1' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 119 | +    echo 'fi' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 120 | +    echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 121 | +    echo 'if [ ! -d /home/$USER/projects/$GIT_PROJECT_NAME ]; then' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 122 | +    echo '  mkdir -p /home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 123 | +    echo 'fi' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 124 | +    echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 125 | +    echo 'cd /home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 126 | +    echo 'git init --bare' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 127 | +    echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 128 | +    echo -n 'echo "Your project has been created, ' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 129 | +    echo 'use the following command to clone the repository"' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 130 | +    echo -n "  git clone ssh://$MY_USERNAME@$DEFAULT_DOMAIN_NAME:$SSH_PORT" >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 131 | +    echo '/home/$USER/projects/$GIT_PROJECT_NAME' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 132 | +    echo '' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 133 | +    echo 'exit 0' >> /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 134 | +    chmod +x /usr/bin/$CREATE_GIT_PROJECT_COMMAND
 | 
	
		
			
			|  | 135 | +
 | 
	
		
			
			|  | 136 | +    echo 'create_git_project' >> $COMPLETION_FILE
 | 
	
		
			
			| 136 | 137 |  }
 | 
	
		
			
			| 137 | 138 |  
 | 
	
		
			
			| 138 | 139 |  function create_mirrors {
 | 
	
		
			
			| 139 |  | -	if [ -d /home/trove ]; then
 | 
	
		
			
			| 140 |  | -		userdel -r trove
 | 
	
		
			
			| 141 |  | -	fi
 | 
	
		
			
			| 142 |  | -	if grep -Fxq "create_mirrors" $COMPLETION_FILE; then
 | 
	
		
			
			| 143 |  | -		return
 | 
	
		
			
			| 144 |  | -	fi
 | 
	
		
			
			| 145 |  | -	${PROJECT_NAME}-mirrors
 | 
	
		
			
			| 146 |  | -	echo 'create_mirrors' >> $COMPLETION_FILE
 | 
	
		
			
			|  | 140 | +    if [ -d /home/trove ]; then
 | 
	
		
			
			|  | 141 | +        userdel -r trove
 | 
	
		
			
			|  | 142 | +    fi
 | 
	
		
			
			|  | 143 | +    if grep -Fxq "create_mirrors" $COMPLETION_FILE; then
 | 
	
		
			
			|  | 144 | +        return
 | 
	
		
			
			|  | 145 | +    fi
 | 
	
		
			
			|  | 146 | +    ${PROJECT_NAME}-mirrors
 | 
	
		
			
			|  | 147 | +    echo 'create_mirrors' >> $COMPLETION_FILE
 | 
	
		
			
			| 147 | 148 |  }
 | 
	
		
			
			| 148 | 149 |  
 | 
	
		
			
			| 149 | 150 |  # NOTE: deliberately no exit 0
 |