Trove enable the upgrade command

This commit is contained in:
Bob Mottram 2016-01-27 09:29:47 +00:00
parent f3d0649b4f
commit d8d8612336
2 changed files with 94 additions and 4 deletions

View File

@ -555,6 +555,21 @@ function git_clone {
git clone "$repo_url" "$destination_dir" git clone "$repo_url" "$destination_dir"
} }
function git_pull {
git stash
if [ "${FRIENDS_TROVE_SERVER}" ]; then
if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
if [ "$FRIENDS_TROVE_PASSWORD" ]; then
if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
return
fi
fi
fi
fi
git pull
}
function create_database { function create_database {
app_name="$1" app_name="$1"
app_admin_password="$2" app_admin_password="$2"
@ -956,7 +971,6 @@ function read_repo_servers {
do do
repo_name=$(echo "$line" | awk -F '=' '{print $1}') repo_name=$(echo "$line" | awk -F '=' '{print $1}')
trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}') trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
#repo_url=$(echo "$line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}" friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
${repo_name}="${friends_repo_url}" ${repo_name}="${friends_repo_url}"
done done

View File

@ -37,6 +37,81 @@ CONFIGURATION_FILE="/root/${PROJECT_NAME}.cfg"
PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}" PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
FRIENDS_TROVE_SERVER=
FRIENDS_TROVE_SSH_PORT=
FRIENDS_TROVE_PASSWORD=
MY_TROVE_PASSWORD=
function read_repo_servers {
if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
fi
if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
fi
if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
fi
if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
fi
if [ ! $FRIENDS_TROVE_SERVER ]; then
return
fi
if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
return
fi
MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
if [ ! -f $MAIN_COMMAND ]; then
MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
fi
REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
for line in "${REPOS[@]}"
do
repo_name=$(echo "$line" | awk -F '=' '{print $1}')
trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
${repo_name}="${friends_repo_url}"
done
}
function git_clone {
repo_url="$1"
destination_dir="$2"
if [[ "$repo_url" == "ssh:"* ]]; then
if [ "${FRIENDS_TROVE_SERVER}" ]; then
if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
if [ "$FRIENDS_TROVE_PASSWORD" ]; then
if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
return
fi
fi
fi
fi
fi
git clone "$repo_url" "$destination_dir"
}
function git_pull {
git stash
if [ "${FRIENDS_TROVE_SERVER}" ]; then
if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
if [ "$FRIENDS_TROVE_PASSWORD" ]; then
if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
return
fi
fi
fi
fi
git pull
}
if [ -f $CONFIGURATION_FILE ]; then if [ -f $CONFIGURATION_FILE ]; then
# read the location of the main project repo # read the location of the main project repo
if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then
@ -46,15 +121,16 @@ fi
update-ca-certificates update-ca-certificates
read_repo_servers
if [ ! -d $PROJECT_DIR ]; then if [ ! -d $PROJECT_DIR ]; then
git clone $PROJECT_REPO $PROJECT_DIR git_clone $PROJECT_REPO $PROJECT_DIR
fi fi
if [ -d $PROJECT_DIR ]; then if [ -d $PROJECT_DIR ]; then
if [ -f $CONFIGURATION_FILE ]; then if [ -f $CONFIGURATION_FILE ]; then
cd $PROJECT_DIR cd $PROJECT_DIR
git stash git_pull
git pull
make install make install
${PROJECT_NAME} -c $CONFIGURATION_FILE ${PROJECT_NAME} -c $CONFIGURATION_FILE
fi fi