Bläddra i källkod

Enable git cloning of letsencrypt from a trove

Bob Mottram 9 år sedan
förälder
incheckning
830f1c2baf
1 ändrade filer med 47 tillägg och 5 borttagningar
  1. 47
    5
      src/freedombone-addcert

+ 47
- 5
src/freedombone-addcert Visa fil

@@ -33,7 +33,7 @@ PROJECT_NAME='freedombone'
33 33
 export TEXTDOMAIN=${PROJECT_NAME}-addcert
34 34
 export TEXTDOMAINDIR="/usr/share/locale"
35 35
 
36
-CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
36
+CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
37 37
 COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
38 38
 
39 39
 HOSTNAME=
@@ -50,6 +50,30 @@ INSTALL_DIR=/root/build
50 50
 LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
51 51
 LETSENCRYPT_REPO="https://github.com/letsencrypt/letsencrypt"
52 52
 MY_EMAIL_ADDRESS=
53
+FRIENDS_TROVE_SERVER=
54
+FRIENDS_TROVE_PASSWORD=
55
+
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}')
59
+    fi
60
+    if grep -q "LETSENCRYPT_SERVER" $CONFIGURATION_FILE; then
61
+        LETSENCRYPT_SERVER=$(grep "LETSENCRYPT_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
62
+    fi
63
+
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}')
70
+        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}')
73
+        fi
74
+        LETSENCRYPT_REPO="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/letsencrypt"
75
+    fi
76
+fi
53 77
 
54 78
 function show_help {
55 79
     echo ''
@@ -157,14 +181,32 @@ fi
157 181
 
158 182
 CERTFILE=$HOSTNAME
159 183
 
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
+
160 202
 function add_cert_letsencrypt {
161 203
     CERTFILE=$LETSENCRYPT_HOSTNAME
162 204
 
163 205
     # obtain the email address for the admin user
164 206
     if [ ! $MY_EMAIL_ADDRESS ]; then
165
-        if [ -f $CONFIG_FILE ]; then
166
-            if grep -q "MY_EMAIL_ADDRESS=" $CONFIG_FILE; then
167
-                MY_EMAIL_ADDRESS=$(cat $CONFIG_FILE | grep "MY_EMAIL_ADDRESS=" | awk -F '=' '{print $2}')
207
+        if [ -f $CONFIGURATION_FILE ]; then
208
+            if grep -q "MY_EMAIL_ADDRESS=" $CONFIGURATION_FILE; then
209
+                MY_EMAIL_ADDRESS=$(cat $CONFIGURATION_FILE | grep "MY_EMAIL_ADDRESS=" | awk -F '=' '{print $2}')
168 210
             fi
169 211
         fi
170 212
     fi
@@ -184,7 +226,7 @@ function add_cert_letsencrypt {
184 226
 
185 227
     # obtain the repo
186 228
     if [ ! -d ${INSTALL_DIR}/letsencrypt ]; then
187
-        git clone $LETSENCRYPT_REPO ${INSTALL_DIR}/letsencrypt
229
+        git_clone $LETSENCRYPT_REPO ${INSTALL_DIR}/letsencrypt
188 230
         if [ ! -d ${INSTALL_DIR}/letsencrypt ]; then
189 231
             exit 76283
190 232
         fi