Ver código fonte

Trove enable the upgrade command

Bob Mottram 9 anos atrás
pai
commit
d8d8612336
2 arquivos alterados com 94 adições e 4 exclusões
  1. 15
    1
      src/freedombone
  2. 79
    3
      src/freedombone-upgrade

+ 15
- 1
src/freedombone Ver arquivo

555
     git clone "$repo_url" "$destination_dir"
555
     git clone "$repo_url" "$destination_dir"
556
 }
556
 }
557
 
557
 
558
+function git_pull {
559
+    git stash
560
+    if [ "${FRIENDS_TROVE_SERVER}" ]; then
561
+        if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
562
+            if [ "$FRIENDS_TROVE_PASSWORD" ]; then
563
+                if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
564
+                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
565
+                    return
566
+                fi
567
+            fi
568
+        fi
569
+    fi
570
+    git pull
571
+}
572
+
558
 function create_database {
573
 function create_database {
559
     app_name="$1"
574
     app_name="$1"
560
     app_admin_password="$2"
575
     app_admin_password="$2"
956
     do
971
     do
957
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
972
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
958
         trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
973
         trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
959
-        #repo_url=$(echo "$line" | awk -F '=' '{print $2}'  | awk -F '"' '{print $2}')
960
         friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
974
         friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
961
         ${repo_name}="${friends_repo_url}"
975
         ${repo_name}="${friends_repo_url}"
962
     done
976
     done

+ 79
- 3
src/freedombone-upgrade Ver arquivo

37
 
37
 
38
 PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
38
 PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
39
 
39
 
40
+FRIENDS_TROVE_SERVER=
41
+FRIENDS_TROVE_SSH_PORT=
42
+FRIENDS_TROVE_PASSWORD=
43
+MY_TROVE_PASSWORD=
44
+
45
+function read_repo_servers {
46
+    if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
47
+        FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
48
+    fi
49
+    if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
50
+        FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
51
+    fi
52
+    if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
53
+        MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
54
+    fi
55
+    if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
56
+        FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
57
+    fi
58
+
59
+    if [ ! $FRIENDS_TROVE_SERVER ]; then
60
+        return
61
+    fi
62
+    if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
63
+        return
64
+    fi
65
+
66
+    MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
67
+    if [ ! -f $MAIN_COMMAND ]; then
68
+        MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
69
+    fi
70
+
71
+    REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
72
+
73
+    for line in "${REPOS[@]}"
74
+    do
75
+        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
76
+        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
77
+        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
78
+        ${repo_name}="${friends_repo_url}"
79
+    done
80
+}
81
+
82
+function git_clone {
83
+    repo_url="$1"
84
+    destination_dir="$2"
85
+    if [[ "$repo_url" == "ssh:"* ]]; then
86
+        if [ "${FRIENDS_TROVE_SERVER}" ]; then
87
+            if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
88
+                if [ "$FRIENDS_TROVE_PASSWORD" ]; then
89
+                    if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
90
+                        sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
91
+                        return
92
+                    fi
93
+                fi
94
+            fi
95
+        fi
96
+    fi
97
+    git clone "$repo_url" "$destination_dir"
98
+}
99
+
100
+function git_pull {
101
+    git stash
102
+    if [ "${FRIENDS_TROVE_SERVER}" ]; then
103
+        if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
104
+            if [ "$FRIENDS_TROVE_PASSWORD" ]; then
105
+                if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
106
+                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
107
+                    return
108
+                fi
109
+            fi
110
+        fi
111
+    fi
112
+    git pull
113
+}
114
+
40
 if [ -f $CONFIGURATION_FILE ]; then
115
 if [ -f $CONFIGURATION_FILE ]; then
41
     # read the location of the main project repo
116
     # read the location of the main project repo
42
     if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then
117
     if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then
46
 
121
 
47
 update-ca-certificates
122
 update-ca-certificates
48
 
123
 
124
+read_repo_servers
125
+
49
 if [ ! -d $PROJECT_DIR ]; then
126
 if [ ! -d $PROJECT_DIR ]; then
50
-    git clone $PROJECT_REPO $PROJECT_DIR
127
+    git_clone $PROJECT_REPO $PROJECT_DIR
51
 fi
128
 fi
52
 
129
 
53
 if [ -d $PROJECT_DIR ]; then
130
 if [ -d $PROJECT_DIR ]; then
54
     if [ -f $CONFIGURATION_FILE ]; then
131
     if [ -f $CONFIGURATION_FILE ]; then
55
         cd $PROJECT_DIR
132
         cd $PROJECT_DIR
56
-        git stash
57
-        git pull
133
+        git_pull
58
         make install
134
         make install
59
         ${PROJECT_NAME} -c $CONFIGURATION_FILE
135
         ${PROJECT_NAME} -c $CONFIGURATION_FILE
60
     fi
136
     fi