Kaynağa Gözat

Trove enable the upgrade command

Bob Mottram 9 yıl önce
ebeveyn
işleme
d8d8612336
2 değiştirilmiş dosya ile 94 ekleme ve 4 silme
  1. 15
    1
      src/freedombone
  2. 79
    3
      src/freedombone-upgrade

+ 15
- 1
src/freedombone Dosyayı Görüntüle

@@ -555,6 +555,21 @@ function git_clone {
555 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 573
 function create_database {
559 574
     app_name="$1"
560 575
     app_admin_password="$2"
@@ -956,7 +971,6 @@ function read_repo_servers {
956 971
     do
957 972
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
958 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 974
         friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
961 975
         ${repo_name}="${friends_repo_url}"
962 976
     done

+ 79
- 3
src/freedombone-upgrade Dosyayı Görüntüle

@@ -37,6 +37,81 @@ CONFIGURATION_FILE="/root/${PROJECT_NAME}.cfg"
37 37
 
38 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 115
 if [ -f $CONFIGURATION_FILE ]; then
41 116
     # read the location of the main project repo
42 117
     if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then
@@ -46,15 +121,16 @@ fi
46 121
 
47 122
 update-ca-certificates
48 123
 
124
+read_repo_servers
125
+
49 126
 if [ ! -d $PROJECT_DIR ]; then
50
-    git clone $PROJECT_REPO $PROJECT_DIR
127
+    git_clone $PROJECT_REPO $PROJECT_DIR
51 128
 fi
52 129
 
53 130
 if [ -d $PROJECT_DIR ]; then
54 131
     if [ -f $CONFIGURATION_FILE ]; then
55 132
         cd $PROJECT_DIR
56
-        git stash
57
-        git pull
133
+        git_pull
58 134
         make install
59 135
         ${PROJECT_NAME} -c $CONFIGURATION_FILE
60 136
     fi