Browse Source

trove enable addcert

Bob Mottram 9 years ago
parent
commit
015ed78265
1 changed files with 76 additions and 36 deletions
  1. 76
    36
      src/freedombone-addcert

+ 76
- 36
src/freedombone-addcert View File

8
 #
8
 #
9
 #                    Freedom in the Cloud
9
 #                    Freedom in the Cloud
10
 #
10
 #
11
-# A script for creating self-signed certificates on Debian
11
+# Create self-signed or Let's Encrypt certificates on Debian
12
 
12
 
13
 # License
13
 # License
14
 # =======
14
 # =======
52
 MY_EMAIL_ADDRESS=
52
 MY_EMAIL_ADDRESS=
53
 FRIENDS_TROVE_SERVER=
53
 FRIENDS_TROVE_SERVER=
54
 FRIENDS_TROVE_PASSWORD=
54
 FRIENDS_TROVE_PASSWORD=
55
+FRIENDS_TROVE_SSH_PORT=
56
+MY_TROVE_PASSWORD=
55
 
57
 
56
-if [ -f $CONFIGURATION_FILE ]; then
57
-    if grep -q "LETSENCRYPT_REPO" $CONFIGURATION_FILE; then
58
-        LETSENCRYPT_REPO=$(grep "LETSENCRYPT_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
58
+function read_repo_servers {
59
+    if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
60
+        FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
61
+    fi
62
+    if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
63
+        FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
59
     fi
64
     fi
60
-    if grep -q "LETSENCRYPT_SERVER" $CONFIGURATION_FILE; then
61
-        LETSENCRYPT_SERVER=$(grep "LETSENCRYPT_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
65
+    if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
66
+        MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
67
+    fi
68
+    if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
69
+        FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
62
     fi
70
     fi
63
 
71
 
64
-    # use a trove?
65
-    if ! grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
66
-        FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
67
-        FRIENDS_TROVE_SSH_PORT=2222
68
-        if ! grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
69
-            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
72
+    if [ ! $FRIENDS_TROVE_SERVER ]; then
73
+        return
74
+    fi
75
+    if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
76
+        return
77
+    fi
78
+
79
+    MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
80
+    if [ ! -f $MAIN_COMMAND ]; then
81
+        MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
82
+    fi
83
+
84
+    REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
85
+
86
+    for line in "${REPOS[@]}"
87
+    do
88
+        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
89
+        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
90
+        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
91
+        ${repo_name}="${friends_repo_url}"
92
+    done
93
+}
94
+
95
+function git_clone {
96
+    repo_url="$1"
97
+    destination_dir="$2"
98
+    if [[ "$repo_url" == "ssh:"* ]]; then
99
+        if [ "${FRIENDS_TROVE_SERVER}" ]; then
100
+            if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
101
+                if [ "$FRIENDS_TROVE_PASSWORD" ]; then
102
+                    if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
103
+                        sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
104
+                        return
105
+                    fi
106
+                fi
107
+            fi
70
         fi
108
         fi
71
-        if ! grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
72
-            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
109
+    fi
110
+    git clone "$repo_url" "$destination_dir"
111
+}
112
+
113
+function git_pull {
114
+    git stash
115
+    git checkout master
116
+    if [ "${FRIENDS_TROVE_SERVER}" ]; then
117
+        if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
118
+            if [ "$FRIENDS_TROVE_PASSWORD" ]; then
119
+                if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
120
+                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
121
+                    if [ $1 ]; then
122
+                        git checkout $1 -b $1
123
+                    fi
124
+                    return
125
+                fi
126
+            fi
73
         fi
127
         fi
74
-        LETSENCRYPT_REPO="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/letsencrypt"
75
     fi
128
     fi
76
-fi
129
+    git pull
130
+
131
+    if [ $1 ]; then
132
+        git checkout $1 -b $1
133
+    fi
134
+}
77
 
135
 
78
 function show_help {
136
 function show_help {
79
     echo ''
137
     echo ''
181
 
239
 
182
 CERTFILE=$HOSTNAME
240
 CERTFILE=$HOSTNAME
183
 
241
 
184
-function git_clone {
185
-    repo_url="$1"
186
-    destination_dir="$2"
187
-    if [[ "$repo_url" == "ssh:"* ]]; then
188
-        if [ "${FRIENDS_TROVE_SERVER}" ]; then
189
-            if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
190
-                if [ "$FRIENDS_TROVE_PASSWORD" ]; then
191
-                    if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
192
-                        sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
193
-                        return
194
-                    fi
195
-                fi
196
-            fi
197
-        fi
198
-    fi
199
-    git clone "$repo_url" "$destination_dir"
200
-}
201
-
202
 function add_cert_letsencrypt {
242
 function add_cert_letsencrypt {
203
     CERTFILE=$LETSENCRYPT_HOSTNAME
243
     CERTFILE=$LETSENCRYPT_HOSTNAME
204
 
244
 
232
         fi
272
         fi
233
     else
273
     else
234
         cd ${INSTALL_DIR}/letsencrypt
274
         cd ${INSTALL_DIR}/letsencrypt
235
-        git stash
236
-        git pull
275
+        git_pull
237
     fi
276
     fi
238
 
277
 
239
     # stop the web server
278
     # stop the web server
336
     fi
375
     fi
337
 }
376
 }
338
 
377
 
378
+read_repo_servers
339
 create_cert
379
 create_cert
340
 generate_dh_params
380
 generate_dh_params
341
 restart_web_server
381
 restart_web_server