Browse Source

Rename troves to mirrors

Bob Mottram 9 years ago
parent
commit
2274a608cf

+ 3
- 3
locale/de/freedombone-config.json View File

12
     "Import keys from USB drive/s": "",
12
     "Import keys from USB drive/s": "",
13
     "Retrieve keys from friends servers": "",
13
     "Retrieve keys from friends servers": "",
14
     "Freedombone Control Panel": "",
14
     "Freedombone Control Panel": "",
15
-    "Main Repository (Trove)": "",
16
-    "If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\\n\\nA trove is a mirrored collection of git repositories for systems which are not yet packaged for Debian.\\n\\nTo use the defaults just select Ok.": "",
15
+    "Main Repository (Mirrors)": "",
16
+    "If you do not wish to use the default repositories they can be obtained from mirrored repos on another ${PROJECT_NAME} system.\\n\\nThe repositories are for applications which are not yet packaged for Debian.\\n\\nTo use the defaults just select Ok.": "",
17
     "URL:": "",
17
     "URL:": "",
18
     "SSH Port:": "",
18
     "SSH Port:": "",
19
     "Password:": "",
19
     "Password:": "",
20
     "Main Repository": "",
20
     "Main Repository": "",
21
-    "Main repository set to $FRIENDS_TROVE_SERVER": "",
21
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
22
     "Select your language:": "",
22
     "Select your language:": "",
23
     "English": "",
23
     "English": "",
24
     "French": "",
24
     "French": "",

+ 4
- 4
locale/de/freedombone-controlpanel.json View File

3
     "Check for updates": "",
3
     "Check for updates": "",
4
     "Upgrade script was not found": "",
4
     "Upgrade script was not found": "",
5
     "Freedombone Control Panel": "",
5
     "Freedombone Control Panel": "",
6
-    "Main Repository (Trove)": "",
7
-    "If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\\n\\nA trove is just a mirrored collection of git repositories.": "",
6
+    "Main Repository (Mirrors)": "",
7
+    "If you do not wish to use the default repositories they can be obtained from mirrors on another ${PROJECT_NAME} server.": "",
8
     "URL:": "",
8
     "URL:": "",
9
     "SSH Port:": "",
9
     "SSH Port:": "",
10
     "Password:": "",
10
     "Password:": "",
11
     "Main Repository": "",
11
     "Main Repository": "",
12
-    "Main repository set to $FRIENDS_TROVE_SERVER": "",
12
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
13
     "Add new user": "",
13
     "Add new user": "",
14
     "Username:": "",
14
     "Username:": "",
15
     "ssh public key (optional):": "",
15
     "ssh public key (optional):": "",
179
     "Logging on/off": "",
179
     "Logging on/off": "",
180
     "Ping enable/disable": "",
180
     "Ping enable/disable": "",
181
     "Security Settings": "",
181
     "Security Settings": "",
182
-    "Set the main repository (Trove)": "",
182
+    "Set the main repository (repo mirrors)": "",
183
     "Media menu": "",
183
     "Media menu": "",
184
     "IRC menu": ""
184
     "IRC menu": ""
185
 }
185
 }

+ 8
- 0
locale/de/freedombone-mirrors.json View File

1
+{
2
+    "${PROJECT_NAME}-mirrors --sync [domain/url] -p [password]": "",
3
+    "  -p|--password [yes|no]      Friend's mirrors user password": "",
4
+    "  -m|--mypassword [yes|no]    Local mirrors user password": "",
5
+    "     --port [number]          Friend's server ssh port number": "",
6
+    "  -s|--sync [domain]          Friend's server domain to sync with": "",
7
+    "WARNING: failed to mirror repo ${repo_url}": ""
8
+}

+ 0
- 8
locale/de/freedombone-trove.json View File

1
-{
2
-    "${PROJECT_NAME}-trove --sync [domain/url] -p [password]": "",
3
-    "  -p|--password [yes|no]      Friend's trove user password": "",
4
-    "  -m|--mypassword [yes|no]    Local trove user password": "",
5
-    "     --port [number]          Friend's server ssh port number": "",
6
-    "  -s|--sync [domain]          Friend's server domain to sync with": "",
7
-    "WARNING: failed to mirror repo ${repo_url}": ""
8
-}

BIN
locale/de/freedombone-trove.mo View File


+ 3
- 3
locale/es/freedombone-config.json View File

12
     "Import keys from USB drive/s": "",
12
     "Import keys from USB drive/s": "",
13
     "Retrieve keys from friends servers": "",
13
     "Retrieve keys from friends servers": "",
14
     "Freedombone Control Panel": "",
14
     "Freedombone Control Panel": "",
15
-    "Main Repository (Trove)": "",
16
-    "If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\\n\\nA trove is a mirrored collection of git repositories for systems which are not yet packaged for Debian.\\n\\nTo use the defaults just select Ok.": "",
15
+    "Main Repository (Mirrors)": "",
16
+    "If you do not wish to use the default repositories they can be obtained from mirrored repos on another ${PROJECT_NAME} system.\\n\\nThe repositories are for applications which are not yet packaged for Debian.\\n\\nTo use the defaults just select Ok.": "",
17
     "URL:": "",
17
     "URL:": "",
18
     "SSH Port:": "",
18
     "SSH Port:": "",
19
     "Password:": "",
19
     "Password:": "",
20
     "Main Repository": "",
20
     "Main Repository": "",
21
-    "Main repository set to $FRIENDS_TROVE_SERVER": "",
21
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
22
     "Select your language:": "",
22
     "Select your language:": "",
23
     "English": "",
23
     "English": "",
24
     "French": "",
24
     "French": "",

+ 4
- 4
locale/es/freedombone-controlpanel.json View File

3
     "Check for updates": "",
3
     "Check for updates": "",
4
     "Upgrade script was not found": "",
4
     "Upgrade script was not found": "",
5
     "Freedombone Control Panel": "",
5
     "Freedombone Control Panel": "",
6
-    "Main Repository (Trove)": "",
7
-    "If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\\n\\nA trove is just a mirrored collection of git repositories.": "",
6
+    "Main Repository (Mirrors)": "",
7
+    "If you do not wish to use the default repositories they can be obtained from mirrors on another ${PROJECT_NAME} server.": "",
8
     "URL:": "",
8
     "URL:": "",
9
     "SSH Port:": "",
9
     "SSH Port:": "",
10
     "Password:": "",
10
     "Password:": "",
11
     "Main Repository": "",
11
     "Main Repository": "",
12
-    "Main repository set to $FRIENDS_TROVE_SERVER": "",
12
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
13
     "Add new user": "",
13
     "Add new user": "",
14
     "Username:": "",
14
     "Username:": "",
15
     "ssh public key (optional):": "",
15
     "ssh public key (optional):": "",
179
     "Logging on/off": "",
179
     "Logging on/off": "",
180
     "Ping enable/disable": "",
180
     "Ping enable/disable": "",
181
     "Security Settings": "",
181
     "Security Settings": "",
182
-    "Set the main repository (Trove)": "",
182
+    "Set the main repository (repo mirrors)": "",
183
     "Media menu": "",
183
     "Media menu": "",
184
     "IRC menu": ""
184
     "IRC menu": ""
185
 }
185
 }

+ 8
- 0
locale/es/freedombone-mirrors.json View File

1
+{
2
+    "${PROJECT_NAME}-mirrors --sync [domain/url] -p [password]": "",
3
+    "  -p|--password [yes|no]      Friend's mirrors user password": "",
4
+    "  -m|--mypassword [yes|no]    Local mirrors user password": "",
5
+    "     --port [number]          Friend's server ssh port number": "",
6
+    "  -s|--sync [domain]          Friend's server domain to sync with": "",
7
+    "WARNING: failed to mirror repo ${repo_url}": ""
8
+}

+ 0
- 8
locale/es/freedombone-trove.json View File

1
-{
2
-    "${PROJECT_NAME}-trove --sync [domain/url] -p [password]": "",
3
-    "  -p|--password [yes|no]      Friend's trove user password": "",
4
-    "  -m|--mypassword [yes|no]    Local trove user password": "",
5
-    "     --port [number]          Friend's server ssh port number": "",
6
-    "  -s|--sync [domain]          Friend's server domain to sync with": "",
7
-    "WARNING: failed to mirror repo ${repo_url}": ""
8
-}

BIN
locale/es/freedombone-trove.mo View File


+ 3
- 3
locale/fr/freedombone-config.json View File

12
     "Import keys from USB drive/s": "",
12
     "Import keys from USB drive/s": "",
13
     "Retrieve keys from friends servers": "",
13
     "Retrieve keys from friends servers": "",
14
     "Freedombone Control Panel": "",
14
     "Freedombone Control Panel": "",
15
-    "Main Repository (Trove)": "",
16
-    "If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\\n\\nA trove is a mirrored collection of git repositories for systems which are not yet packaged for Debian.\\n\\nTo use the defaults just select Ok.": "",
15
+    "Main Repository (Mirrors)": "",
16
+    "If you do not wish to use the default repositories they can be obtained from mirrored repos on another ${PROJECT_NAME} system.\\n\\nThe repositories are for applications which are not yet packaged for Debian.\\n\\nTo use the defaults just select Ok.": "",
17
     "URL:": "",
17
     "URL:": "",
18
     "SSH Port:": "",
18
     "SSH Port:": "",
19
     "Password:": "",
19
     "Password:": "",
20
     "Main Repository": "",
20
     "Main Repository": "",
21
-    "Main repository set to $FRIENDS_TROVE_SERVER": "",
21
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
22
     "Select your language:": "",
22
     "Select your language:": "",
23
     "English": "",
23
     "English": "",
24
     "French": "",
24
     "French": "",

+ 4
- 4
locale/fr/freedombone-controlpanel.json View File

3
     "Check for updates": "",
3
     "Check for updates": "",
4
     "Upgrade script was not found": "",
4
     "Upgrade script was not found": "",
5
     "Freedombone Control Panel": "",
5
     "Freedombone Control Panel": "",
6
-    "Main Repository (Trove)": "",
7
-    "If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\\n\\nA trove is just a mirrored collection of git repositories.": "",
6
+    "Main Repository (Mirrors)": "",
7
+    "If you do not wish to use the default repositories they can be obtained from mirrors on another ${PROJECT_NAME} server.": "",
8
     "URL:": "",
8
     "URL:": "",
9
     "SSH Port:": "",
9
     "SSH Port:": "",
10
     "Password:": "",
10
     "Password:": "",
11
     "Main Repository": "",
11
     "Main Repository": "",
12
-    "Main repository set to $FRIENDS_TROVE_SERVER": "",
12
+    "Main repository set to $FRIENDS_MIRRORS_SERVER": "",
13
     "Add new user": "",
13
     "Add new user": "",
14
     "Username:": "",
14
     "Username:": "",
15
     "ssh public key (optional):": "",
15
     "ssh public key (optional):": "",
179
     "Logging on/off": "",
179
     "Logging on/off": "",
180
     "Ping enable/disable": "",
180
     "Ping enable/disable": "",
181
     "Security Settings": "",
181
     "Security Settings": "",
182
-    "Set the main repository (Trove)": "",
182
+    "Set the main repository (repo mirrors)": "",
183
     "Media menu": "",
183
     "Media menu": "",
184
     "IRC menu": ""
184
     "IRC menu": ""
185
 }
185
 }

+ 8
- 0
locale/fr/freedombone-mirrors.json View File

1
+{
2
+    "${PROJECT_NAME}-mirrors --sync [domain/url] -p [password]": "",
3
+    "  -p|--password [yes|no]      Friend's mirrors user password": "",
4
+    "  -m|--mypassword [yes|no]    Local mirrors user password": "",
5
+    "     --port [number]          Friend's server ssh port number": "",
6
+    "  -s|--sync [domain]          Friend's server domain to sync with": "",
7
+    "WARNING: failed to mirror repo ${repo_url}": ""
8
+}

+ 0
- 8
locale/fr/freedombone-trove.json View File

1
-{
2
-    "${PROJECT_NAME}-trove --sync [domain/url] -p [password]": "",
3
-    "  -p|--password [yes|no]      Friend's trove user password": "",
4
-    "  -m|--mypassword [yes|no]    Local trove user password": "",
5
-    "     --port [number]          Friend's server ssh port number": "",
6
-    "  -s|--sync [domain]          Friend's server domain to sync with": "",
7
-    "WARNING: failed to mirror repo ${repo_url}": ""
8
-}

BIN
locale/fr/freedombone-trove.mo View File


BIN
man/freedombone-mirrors.1.gz View File


BIN
man/freedombone-trove.1.gz View File


+ 37
- 37
src/freedombone View File

88
 SSH_PORT=2222
88
 SSH_PORT=2222
89
 IRC_PORT=6697
89
 IRC_PORT=6697
90
 
90
 
91
-# password used for accessing your repo trove
92
-MY_TROVE_PASSWORD=
93
-# friend's repo trove
94
-FRIENDS_TROVE_PASSWORD=
95
-FRIENDS_TROVE_SERVER=
96
-FRIENDS_TROVE_SSH_PORT=2222
97
-
98
-# This isn't used here, but is included for trove creation purposes
91
+# password used for accessing your repo mirrors
92
+MY_MIRRORS_PASSWORD=
93
+# friend's repo mirrors
94
+FRIENDS_MIRRORS_PASSWORD=
95
+FRIENDS_MIRRORS_SERVER=
96
+FRIENDS_MIRRORS_SSH_PORT=2222
97
+
98
+# This isn't used here, but is included for mirrors creation purposes
99
 LETSENCRYPT_REPO="https://github.com/letsencrypt/letsencrypt"
99
 LETSENCRYPT_REPO="https://github.com/letsencrypt/letsencrypt"
100
 
100
 
101
 # An optional password to log into IRC. This applies to all users
101
 # An optional password to log into IRC. This applies to all users
544
     repo_url="$1"
544
     repo_url="$1"
545
     destination_dir="$2"
545
     destination_dir="$2"
546
     if [[ "$repo_url" == "ssh:"* ]]; then
546
     if [[ "$repo_url" == "ssh:"* ]]; then
547
-        if [ "${FRIENDS_TROVE_SERVER}" ]; then
548
-            if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
549
-                if [ "$FRIENDS_TROVE_PASSWORD" ]; then
550
-                    if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
551
-                        sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
547
+        if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
548
+            if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
549
+                if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
550
+                    if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
551
+                        sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git clone "$repo_url" "$destination_dir"
552
                         return
552
                         return
553
                     fi
553
                     fi
554
                 fi
554
                 fi
566
     git stash
566
     git stash
567
     git remote set-url origin $1
567
     git remote set-url origin $1
568
     git checkout master
568
     git checkout master
569
-    if [ "${FRIENDS_TROVE_SERVER}" ]; then
570
-        if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
571
-            if [ "$FRIENDS_TROVE_PASSWORD" ]; then
572
-                if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
573
-                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
569
+    if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
570
+        if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
571
+            if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
572
+                if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
573
+                    sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git pull
574
                     if [ $2 ]; then
574
                     if [ $2 ]; then
575
                         git checkout $2 -b $2
575
                         git checkout $2 -b $2
576
                     fi
576
                     fi
957
 
957
 
958
 function read_repo_servers {
958
 function read_repo_servers {
959
     if [ -f $CONFIGURATION_FILE ]; then
959
     if [ -f $CONFIGURATION_FILE ]; then
960
-        if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
961
-            FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
960
+        if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
961
+            FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
962
         fi
962
         fi
963
-        if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
964
-            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
963
+        if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
964
+            FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
965
         fi
965
         fi
966
-        if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
967
-            MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
966
+        if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
967
+            MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
968
         fi
968
         fi
969
-        if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
970
-            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
969
+        if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
970
+            FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
971
         fi
971
         fi
972
     fi
972
     fi
973
 
973
 
974
-    if [ ! $FRIENDS_TROVE_SERVER ]; then
974
+    if [ ! $FRIENDS_MIRRORS_SERVER ]; then
975
         return
975
         return
976
     fi
976
     fi
977
-    if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
977
+    if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
978
         return
978
         return
979
     fi
979
     fi
980
 
980
 
988
     for line in "${REPOS[@]}"
988
     for line in "${REPOS[@]}"
989
     do
989
     do
990
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
990
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
991
-        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
992
-        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
991
+        mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
992
+        friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
993
         ${repo_name}="${friends_repo_url}"
993
         ${repo_name}="${friends_repo_url}"
994
     done
994
     done
995
 }
995
 }
2261
     echo 'mesh_cjdns' >> $COMPLETION_FILE
2261
     echo 'mesh_cjdns' >> $COMPLETION_FILE
2262
 }
2262
 }
2263
 
2263
 
2264
-function create_trove {
2265
-    if grep -Fxq "create_trove" $COMPLETION_FILE; then
2264
+function create_mirrors {
2265
+    if grep -Fxq "create_mirrors" $COMPLETION_FILE; then
2266
         return
2266
         return
2267
     fi
2267
     fi
2268
-    ${PROJECT_NAME}-trove
2269
-    echo 'create_trove' >> $COMPLETION_FILE
2268
+    ${PROJECT_NAME}-mirrors
2269
+    echo 'create_mirrors' >> $COMPLETION_FILE
2270
 }
2270
 }
2271
 
2271
 
2272
 function mesh_cjdns_tools {
2272
 function mesh_cjdns_tools {
4768
     echo '#!/bin/bash' > /usr/bin/filterspam
4768
     echo '#!/bin/bash' > /usr/bin/filterspam
4769
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterspam
4769
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterspam
4770
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterspam
4770
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterspam
4771
-    echo '    if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then' >> /usr/bin/filterspam
4771
+    echo '    if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then' >> /usr/bin/filterspam
4772
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-spam' >> /usr/bin/filterspam
4772
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-spam' >> /usr/bin/filterspam
4773
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterspam
4773
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterspam
4774
     echo '           exit' >> /usr/bin/filterspam
4774
     echo '           exit' >> /usr/bin/filterspam
4790
     echo '#!/bin/bash' > /usr/bin/filterham
4790
     echo '#!/bin/bash' > /usr/bin/filterham
4791
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterham
4791
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterham
4792
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterham
4792
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterham
4793
-    echo '    if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then' >> /usr/bin/filterham
4793
+    echo '    if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then' >> /usr/bin/filterham
4794
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-ham' >> /usr/bin/filterham
4794
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-ham' >> /usr/bin/filterham
4795
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterham
4795
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterham
4796
     echo '            exit' >> /usr/bin/filterham
4796
     echo '            exit' >> /usr/bin/filterham
9996
 check_hwrng
9996
 check_hwrng
9997
 search_for_attached_usb_drive
9997
 search_for_attached_usb_drive
9998
 regenerate_ssh_keys
9998
 regenerate_ssh_keys
9999
-create_trove
9999
+create_mirrors
10000
 create_upgrade_script
10000
 create_upgrade_script
10001
 letsencrypt_renewals
10001
 letsencrypt_renewals
10002
 install_zeronet
10002
 install_zeronet

+ 26
- 26
src/freedombone-addcert View File

50
 LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
50
 LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
51
 LETSENCRYPT_REPO="https://github.com/letsencrypt/letsencrypt"
51
 LETSENCRYPT_REPO="https://github.com/letsencrypt/letsencrypt"
52
 MY_EMAIL_ADDRESS=
52
 MY_EMAIL_ADDRESS=
53
-FRIENDS_TROVE_SERVER=
54
-FRIENDS_TROVE_PASSWORD=
55
-FRIENDS_TROVE_SSH_PORT=
56
-MY_TROVE_PASSWORD=
53
+FRIENDS_MIRRORS_SERVER=
54
+FRIENDS_MIRRORS_PASSWORD=
55
+FRIENDS_MIRRORS_SSH_PORT=
56
+MY_MIRRORS_PASSWORD=
57
 
57
 
58
 function read_repo_servers {
58
 function read_repo_servers {
59
     if [ -f $CONFIGURATION_FILE ]; then
59
     if [ -f $CONFIGURATION_FILE ]; then
60
-        if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
61
-            FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
60
+        if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
61
+            FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
62
         fi
62
         fi
63
-        if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
64
-            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
63
+        if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
64
+            FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
65
         fi
65
         fi
66
-        if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
67
-            MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
66
+        if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
67
+            MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
68
         fi
68
         fi
69
-        if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
70
-            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
69
+        if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
70
+            FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
71
         fi
71
         fi
72
     fi
72
     fi
73
 
73
 
74
-    if [ ! $FRIENDS_TROVE_SERVER ]; then
74
+    if [ ! $FRIENDS_MIRRORS_SERVER ]; then
75
         return
75
         return
76
     fi
76
     fi
77
-    if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
77
+    if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
78
         return
78
         return
79
     fi
79
     fi
80
 
80
 
88
     for line in "${REPOS[@]}"
88
     for line in "${REPOS[@]}"
89
     do
89
     do
90
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
90
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
91
-        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
92
-        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
91
+        mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
92
+        friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
93
         ${repo_name}="${friends_repo_url}"
93
         ${repo_name}="${friends_repo_url}"
94
     done
94
     done
95
 }
95
 }
98
     repo_url="$1"
98
     repo_url="$1"
99
     destination_dir="$2"
99
     destination_dir="$2"
100
     if [[ "$repo_url" == "ssh:"* ]]; then
100
     if [[ "$repo_url" == "ssh:"* ]]; then
101
-        if [ "${FRIENDS_TROVE_SERVER}" ]; then
102
-            if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
103
-                if [ "$FRIENDS_TROVE_PASSWORD" ]; then
104
-                    if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
105
-                        sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
101
+        if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
102
+            if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
103
+                if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
104
+                    if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
105
+                        sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git clone "$repo_url" "$destination_dir"
106
                         return
106
                         return
107
                     fi
107
                     fi
108
                 fi
108
                 fi
120
     git stash
120
     git stash
121
     git remote set-url origin $1
121
     git remote set-url origin $1
122
     git checkout master
122
     git checkout master
123
-    if [ "${FRIENDS_TROVE_SERVER}" ]; then
124
-        if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
125
-            if [ "$FRIENDS_TROVE_PASSWORD" ]; then
126
-                if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
127
-                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
123
+    if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
124
+        if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
125
+            if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
126
+                if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
127
+                    sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git pull
128
                     if [ $2 ]; then
128
                     if [ $2 ]; then
129
                         git checkout $2 -b $2
129
                         git checkout $2 -b $2
130
                     fi
130
                     fi

+ 1
- 1
src/freedombone-archive-mail View File

35
 
35
 
36
 for d in /home/*/ ; do
36
 for d in /home/*/ ; do
37
     USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
37
     USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
38
-    if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then
38
+    if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then
39
         # for every user who has a mail directory
39
         # for every user who has a mail directory
40
         if [ -d /home/$USERNAME/Maildir ]; then
40
         if [ -d /home/$USERNAME/Maildir ]; then
41
             MUTTRC=/home/$USERNAME/.muttrc
41
             MUTTRC=/home/$USERNAME/.muttrc

+ 1
- 1
src/freedombone-backup-local View File

265
     # Backup user files
265
     # Backup user files
266
     for d in /home/*/ ; do
266
     for d in /home/*/ ; do
267
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
267
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
268
-        if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then
268
+        if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then
269
 
269
 
270
             # Backup any gpg keys
270
             # Backup any gpg keys
271
             if [ -d /home/$USERNAME/.gnupg ]; then
271
             if [ -d /home/$USERNAME/.gnupg ]; then

+ 2
- 2
src/freedombone-backup-remote View File

178
 function backup_users {
178
 function backup_users {
179
     for d in /home/*/ ; do
179
     for d in /home/*/ ; do
180
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
180
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
181
-        if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then
181
+        if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then
182
 
182
 
183
             # personal settings
183
             # personal settings
184
             if [ -d /home/$USERNAME/personal ]; then
184
             if [ -d /home/$USERNAME/personal ]; then
604
         # Social key management
604
         # Social key management
605
         for d in /home/*/ ; do
605
         for d in /home/*/ ; do
606
             USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
606
             USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
607
-            if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then
607
+            if [[ $USERNAME != "git" && $USERNAME != "mirrors" ]]; then
608
                 disperse_key_shares $USERNAME $REMOTE_DOMAIN $REMOTE_SSH_PORT "$REMOTE_PASSWORD" $REMOTE_SERVER
608
                 disperse_key_shares $USERNAME $REMOTE_DOMAIN $REMOTE_SSH_PORT "$REMOTE_PASSWORD" $REMOTE_SERVER
609
             fi
609
             fi
610
         done
610
         done

+ 34
- 34
src/freedombone-config View File

111
 DEFAULT_LANGUAGE='en_GB.UTF-8'
111
 DEFAULT_LANGUAGE='en_GB.UTF-8'
112
 ONION_ONLY="no"
112
 ONION_ONLY="no"
113
 
113
 
114
-# Trove settings
115
-FRIENDS_TROVE_SERVER=
116
-FRIENDS_TROVE_SSH_PORT=2222
117
-FRIENDS_TROVE_PASSWORD=
118
-MY_TROVE_PASSWORD=
114
+# Mirrors settings
115
+FRIENDS_MIRRORS_SERVER=
116
+FRIENDS_MIRRORS_SSH_PORT=2222
117
+FRIENDS_MIRRORS_PASSWORD=
118
+MY_MIRRORS_PASSWORD=
119
 
119
 
120
 function show_help {
120
 function show_help {
121
     echo ''
121
     echo ''
288
     fi
288
     fi
289
     echo "ONION_ONLY=$ONION_ONLY" >> $CONFIGURATION_FILE
289
     echo "ONION_ONLY=$ONION_ONLY" >> $CONFIGURATION_FILE
290
 
290
 
291
-    if [ $FRIENDS_TROVE_SERVER ]; then
292
-        echo "FRIENDS_TROVE_SERVER=$FRIENDS_TROVE_SERVER" >> $CONFIGURATION_FILE
291
+    if [ $FRIENDS_MIRRORS_SERVER ]; then
292
+        echo "FRIENDS_MIRRORS_SERVER=$FRIENDS_MIRRORS_SERVER" >> $CONFIGURATION_FILE
293
     fi
293
     fi
294
-    if [ $FRIENDS_TROVE_SSH_PORT ]; then
295
-        echo "FRIENDS_TROVE_SSH_PORT=$FRIENDS_TROVE_SSH_PORT" >> $CONFIGURATION_FILE
294
+    if [ $FRIENDS_MIRRORS_SSH_PORT ]; then
295
+        echo "FRIENDS_MIRRORS_SSH_PORT=$FRIENDS_MIRRORS_SSH_PORT" >> $CONFIGURATION_FILE
296
     fi
296
     fi
297
-    if [ $FRIENDS_TROVE_PASSWORD ]; then
298
-        echo "FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD" >> $CONFIGURATION_FILE
297
+    if [ $FRIENDS_MIRRORS_PASSWORD ]; then
298
+        echo "FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
299
     fi
299
     fi
300
 }
300
 }
301
 
301
 
532
     data=$(tempfile 2>/dev/null)
532
     data=$(tempfile 2>/dev/null)
533
     trap "rm -f $data" 0 1 2 5 15
533
     trap "rm -f $data" 0 1 2 5 15
534
     dialog --backtitle $"Freedombone Control Panel" \
534
     dialog --backtitle $"Freedombone Control Panel" \
535
-           --title $"Main Repository (Trove)" \
536
-           --form $"If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\n\nA trove is a mirrored collection of git repositories for systems which are not yet packaged for Debian.\n\nTo use the defaults just select Ok." 18 65 4 \
537
-              $"URL:" 1 1 "$FRIENDS_TROVE_SERVER" 1 18 40 18 \
538
-              $"SSH Port:" 2 1 "$FRIENDS_TROVE_SSH_PORT" 2 18 10 10000 \
539
-              $"Password:" 3 1 "$FRIENDS_TROVE_PASSWORD" 3 18 40 10000 \
535
+           --title $"Main Repository (Mirrors)" \
536
+           --form $"If you do not wish to use the default repositories they can be obtained from mirrored repos on another ${PROJECT_NAME} system.\n\nThe repositories are for applications which are not yet packaged for Debian.\n\nTo use the defaults just select Ok." 18 65 4 \
537
+              $"URL:" 1 1 "$FRIENDS_MIRRORS_SERVER" 1 18 40 18 \
538
+              $"SSH Port:" 2 1 "$FRIENDS_MIRRORS_SSH_PORT" 2 18 10 10000 \
539
+              $"Password:" 3 1 "$FRIENDS_MIRRORS_PASSWORD" 3 18 40 10000 \
540
               2> $data
540
               2> $data
541
     sel=$?
541
     sel=$?
542
     case $sel in
542
     case $sel in
543
         1) return;;
543
         1) return;;
544
         255) return;;
544
         255) return;;
545
     esac
545
     esac
546
-    new_trove_url=$(cat $data | sed -n 1p)
547
-    new_trove_ssh_port=$(cat $data | sed -n 2p)
548
-    new_trove_password=$(cat $data | sed -n 3p)
546
+    new_mirrors_url=$(cat $data | sed -n 1p)
547
+    new_mirrors_ssh_port=$(cat $data | sed -n 2p)
548
+    new_mirrors_password=$(cat $data | sed -n 3p)
549
 
549
 
550
-    if [ ${#new_trove_url} -lt 2 ]; then
550
+    if [ ${#new_mirrors_url} -lt 2 ]; then
551
         return
551
         return
552
     fi
552
     fi
553
-    if [ ${#new_trove_ssh_port} -lt 1 ]; then
553
+    if [ ${#new_mirrors_ssh_port} -lt 1 ]; then
554
         return
554
         return
555
     fi
555
     fi
556
-    if [ ${#new_trove_password} -lt 10 ]; then
556
+    if [ ${#new_mirrors_password} -lt 10 ]; then
557
         dialog --title $"Main Repository" \
557
         dialog --title $"Main Repository" \
558
-               --msgbox $'Trove password was too short. Should be at least 10 characters.' 6 40
558
+               --msgbox $'Mirrors password was too short. Should be at least 10 characters.' 6 40
559
         return
559
         return
560
     fi
560
     fi
561
 
561
 
562
-    if [[ $new_trove_url == *"."* ]]; then
563
-        FRIENDS_TROVE_SERVER=$new_trove_url
564
-        FRIENDS_TROVE_SSH_PORT=$new_trove_ssh_port
565
-        FRIENDS_TROVE_PASSWORD=$new_trove_password
562
+    if [[ $new_mirrors_url == *"."* ]]; then
563
+        FRIENDS_MIRRORS_SERVER=$new_mirrors_url
564
+        FRIENDS_MIRRORS_SSH_PORT=$new_mirrors_ssh_port
565
+        FRIENDS_MIRRORS_PASSWORD=$new_mirrors_password
566
 
566
 
567
         dialog --title $"Main Repository" \
567
         dialog --title $"Main Repository" \
568
-               --msgbox $"Main repository set to $FRIENDS_TROVE_SERVER" 6 60
568
+               --msgbox $"Main repository set to $FRIENDS_MIRRORS_SERVER" 6 60
569
     fi
569
     fi
570
 }
570
 }
571
 
571
 
1754
     fi
1754
     fi
1755
 
1755
 
1756
     if [ -f $CONFIGURATION_FILE ]; then
1756
     if [ -f $CONFIGURATION_FILE ]; then
1757
-        if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
1758
-            FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1757
+        if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
1758
+            FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1759
         fi
1759
         fi
1760
-        if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
1761
-            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1760
+        if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
1761
+            FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1762
         fi
1762
         fi
1763
-        if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
1764
-            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1763
+        if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
1764
+            FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1765
         fi
1765
         fi
1766
         if grep -q "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE; then
1766
         if grep -q "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE; then
1767
             ENABLE_SOCIAL_KEY_MANAGEMENT=$(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
1767
             ENABLE_SOCIAL_KEY_MANAGEMENT=$(grep "ENABLE_SOCIAL_KEY_MANAGEMENT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')

+ 52
- 52
src/freedombone-controlpanel View File

64
     fi
64
     fi
65
 fi
65
 fi
66
 
66
 
67
-# Trove settings
68
-FRIENDS_TROVE_SERVER=
69
-FRIENDS_TROVE_SSH_PORT=2222
70
-FRIENDS_TROVE_PASSWORD=
71
-MY_TROVE_PASSWORD=
67
+# Mirrors settings
68
+FRIENDS_MIRRORS_SERVER=
69
+FRIENDS_MIRRORS_SSH_PORT=2222
70
+FRIENDS_MIRRORS_PASSWORD=
71
+MY_MIRRORS_PASSWORD=
72
 
72
 
73
 function any_key {
73
 function any_key {
74
     echo ' '
74
     echo ' '
89
 
89
 
90
 function read_repo_servers {
90
 function read_repo_servers {
91
     if [ -f $CONFIGURATION_FILE ]; then
91
     if [ -f $CONFIGURATION_FILE ]; then
92
-        if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
93
-            FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
92
+        if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
93
+            FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
94
         fi
94
         fi
95
-        if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
96
-            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
95
+        if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
96
+            FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
97
         fi
97
         fi
98
-        if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
99
-            MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
98
+        if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
99
+            MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
100
         fi
100
         fi
101
-        if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
102
-            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
101
+        if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
102
+            FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
103
         fi
103
         fi
104
     fi
104
     fi
105
 
105
 
106
-    if [ ! $FRIENDS_TROVE_SERVER ]; then
106
+    if [ ! $FRIENDS_MIRRORS_SERVER ]; then
107
         return
107
         return
108
     fi
108
     fi
109
-    if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
109
+    if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
110
         return
110
         return
111
     fi
111
     fi
112
 
112
 
120
     for line in "${REPOS[@]}"
120
     for line in "${REPOS[@]}"
121
     do
121
     do
122
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
122
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
123
-        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
124
-        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
123
+        mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
124
+        friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
125
         ${repo_name}="${friends_repo_url}"
125
         ${repo_name}="${friends_repo_url}"
126
     done
126
     done
127
 }
127
 }
130
     data=$(tempfile 2>/dev/null)
130
     data=$(tempfile 2>/dev/null)
131
     trap "rm -f $data" 0 1 2 5 15
131
     trap "rm -f $data" 0 1 2 5 15
132
     dialog --backtitle $"Freedombone Control Panel" \
132
     dialog --backtitle $"Freedombone Control Panel" \
133
-           --title $"Main Repository (Trove)" \
134
-           --form $"If you do not wish to use the default repositories they can be obtained from another ${PROJECT_NAME} server acting as a trove.\n\nA trove is just a mirrored collection of git repositories." 14 60 3 \
135
-              $"URL:" 1 1 "$FRIENDS_TROVE_SERVER" 1 14 40 15 \
136
-              $"SSH Port:" 2 1 "$FRIENDS_TROVE_SSH_PORT" 2 14 40 10000 \
137
-              $"Password:" 3 1 "$FRIENDS_TROVE_PASSWORD" 3 14 40 10000 \
133
+           --title $"Main Repository (Mirrors)" \
134
+           --form $"If you do not wish to use the default repositories they can be obtained from mirrors on another ${PROJECT_NAME} server." 14 60 3 \
135
+              $"URL:" 1 1 "$FRIENDS_MIRRORS_SERVER" 1 14 40 15 \
136
+              $"SSH Port:" 2 1 "$FRIENDS_MIRRORS_SSH_PORT" 2 14 40 10000 \
137
+              $"Password:" 3 1 "$FRIENDS_MIRRORS_PASSWORD" 3 14 40 10000 \
138
               2> $data
138
               2> $data
139
     sel=$?
139
     sel=$?
140
     case $sel in
140
     case $sel in
141
         1) return;;
141
         1) return;;
142
         255) return;;
142
         255) return;;
143
     esac
143
     esac
144
-    new_trove_url=$(cat $data | sed -n 1p)
145
-    new_trove_ssh_port=$(cat $data | sed -n 2p)
146
-    new_trove_password=$(cat $data | sed -n 3p)
144
+    new_mirrors_url=$(cat $data | sed -n 1p)
145
+    new_mirrors_ssh_port=$(cat $data | sed -n 2p)
146
+    new_mirrors_password=$(cat $data | sed -n 3p)
147
 
147
 
148
-    if [ ${#new_trove_url} -lt 2 ]; then
148
+    if [ ${#new_mirrors_url} -lt 2 ]; then
149
         return
149
         return
150
     fi
150
     fi
151
-    if [ ${#new_trove_ssh_port} -lt 1 ]; then
151
+    if [ ${#new_mirrors_ssh_port} -lt 1 ]; then
152
         return
152
         return
153
     fi
153
     fi
154
-    if [ ${#new_trove_password} -lt 10 ]; then
154
+    if [ ${#new_mirrors_password} -lt 10 ]; then
155
         dialog --title $"Main Repository" \
155
         dialog --title $"Main Repository" \
156
-               --msgbox $'Trove password was too short. Should be at least 10 characters.' 6 40
156
+               --msgbox $'Mirrors password was too short. Should be at least 10 characters.' 6 40
157
         return
157
         return
158
     fi
158
     fi
159
 
159
 
160
-    if [[ $new_trove_url == *"."* ]]; then
161
-        FRIENDS_TROVE_SERVER=$new_trove_url
162
-        FRIENDS_TROVE_SSH_PORT=$new_trove_ssh_port
163
-        FRIENDS_TROVE_PASSWORD=$new_trove_password
160
+    if [[ $new_mirrors_url == *"."* ]]; then
161
+        FRIENDS_MIRRORS_SERVER=$new_mirrors_url
162
+        FRIENDS_MIRRORS_SSH_PORT=$new_mirrors_ssh_port
163
+        FRIENDS_MIRRORS_PASSWORD=$new_mirrors_password
164
 
164
 
165
-        if ! grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
166
-            echo "FRIENDS_TROVE_SERVER=$FRIENDS_TROVE_SERVER" >> $CONFIGURATION_FILE
165
+        if ! grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
166
+            echo "FRIENDS_MIRRORS_SERVER=$FRIENDS_MIRRORS_SERVER" >> $CONFIGURATION_FILE
167
         else
167
         else
168
-            sed -i "s|FRIENDS_TROVE_SERVER=.*|FRIENDS_TROVE_SERVER=$FRIENDS_TROVE_SERVER|g" $CONFIGURATION_FILE
168
+            sed -i "s|FRIENDS_MIRRORS_SERVER=.*|FRIENDS_MIRRORS_SERVER=$FRIENDS_MIRRORS_SERVER|g" $CONFIGURATION_FILE
169
         fi
169
         fi
170
 
170
 
171
-        if ! grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
172
-            echo "FRIENDS_TROVE_SSH_PORT=$FRIENDS_TROVE_SSH_PORT" >> $CONFIGURATION_FILE
171
+        if ! grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
172
+            echo "FRIENDS_MIRRORS_SSH_PORT=$FRIENDS_MIRRORS_SSH_PORT" >> $CONFIGURATION_FILE
173
         else
173
         else
174
-            sed -i "s|FRIENDS_TROVE_SSH_PORT=.*|FRIENDS_TROVE_SSH_PORT=$FRIENDS_TROVE_SSH_PORT|g" $CONFIGURATION_FILE
174
+            sed -i "s|FRIENDS_MIRRORS_SSH_PORT=.*|FRIENDS_MIRRORS_SSH_PORT=$FRIENDS_MIRRORS_SSH_PORT|g" $CONFIGURATION_FILE
175
         fi
175
         fi
176
 
176
 
177
-        if ! grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
178
-            echo "FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD" >> $CONFIGURATION_FILE
177
+        if ! grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
178
+            echo "FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
179
         else
179
         else
180
-            sed -i "s|FRIENDS_TROVE_PASSWORD=.*|FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD|g" $CONFIGURATION_FILE
180
+            sed -i "s|FRIENDS_MIRRORS_PASSWORD=.*|FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD|g" $CONFIGURATION_FILE
181
         fi
181
         fi
182
 
182
 
183
         # re-read the repos
183
         # re-read the repos
184
         read_repo_servers
184
         read_repo_servers
185
 
185
 
186
         dialog --title $"Main Repository" \
186
         dialog --title $"Main Repository" \
187
-               --msgbox $"Main repository set to $FRIENDS_TROVE_SERVER" 6 60
187
+               --msgbox $"Main repository set to $FRIENDS_MIRRORS_SERVER" 6 60
188
     fi
188
     fi
189
 }
189
 }
190
 
190
 
349
     echo '--------------------------------------------------------------------------'
349
     echo '--------------------------------------------------------------------------'
350
     for d in /home/*/ ; do
350
     for d in /home/*/ ; do
351
         USRNAME=$(echo "$d" | awk -F '/' '{print $3}')
351
         USRNAME=$(echo "$d" | awk -F '/' '{print $3}')
352
-        if [[ $USRNAME != "git" && $USRNAME != "trove" ]]; then
352
+        if [[ $USRNAME != "git" && $USRNAME != "mirrors" ]]; then
353
             echo -n -e "$(pad_string ${USRNAME})"
353
             echo -n -e "$(pad_string ${USRNAME})"
354
             # get the SIP extension
354
             # get the SIP extension
355
             SIPEXT=
355
             SIPEXT=
376
     echo ''
376
     echo ''
377
 }
377
 }
378
 
378
 
379
-function show_trove_password {
380
-    if [ ! /home/trove ]; then
379
+function show_mirrors_password {
380
+    if [ ! /home/mirrors ]; then
381
         return
381
         return
382
     fi
382
     fi
383
-    if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
384
-        MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
383
+    if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
384
+        MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
385
     fi
385
     fi
386
-    echo 'Local Trove'
386
+    echo 'Local Mirrors'
387
     echo '==========='
387
     echo '==========='
388
     echo ''
388
     echo ''
389
     echo -n "URL:      "
389
     echo -n "URL:      "
390
     echo "$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')"
390
     echo "$(cat ${COMPLETION_FILE} | grep 'ssh onion domain' | awk -F ':' '{print $2}')"
391
     echo "SSH Port: $SSH_PORT"
391
     echo "SSH Port: $SSH_PORT"
392
-    echo "Password: $MY_TROVE_PASSWORD"
392
+    echo "Password: $MY_MIRRORS_PASSWORD"
393
     echo ''
393
     echo ''
394
 }
394
 }
395
 
395
 
396
 function show_about {
396
 function show_about {
397
     clear
397
     clear
398
     show_domains
398
     show_domains
399
-    show_trove_password
399
+    show_mirrors_password
400
     show_users
400
     show_users
401
     any_key
401
     any_key
402
 }
402
 }
1516
                6 $"Manage Users" off \
1516
                6 $"Manage Users" off \
1517
                7 $"Email Filtering Rules" off \
1517
                7 $"Email Filtering Rules" off \
1518
                8 $"Security Settings" off \
1518
                8 $"Security Settings" off \
1519
-               9 $"Set the main repository (Trove)" off \
1519
+               9 $"Set the main repository (repo mirrors)" off \
1520
                10 $"Hubzilla" off \
1520
                10 $"Hubzilla" off \
1521
                11 $"Media menu" off \
1521
                11 $"Media menu" off \
1522
                12 $"IRC menu" off \
1522
                12 $"IRC menu" off \

+ 245
- 0
src/freedombone-mirrors View File

1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Mirror git repos which the project depends on
12
+#
13
+# License
14
+# =======
15
+#
16
+# Copyright (C) 2015-2016 Bob Mottram <bob@robotics.uk.to>
17
+#
18
+# This program is free software: you can redistribute it and/or modify
19
+# it under the terms of the GNU General Public License as published by
20
+# the Free Software Foundation, either version 3 of the License, or
21
+# (at your option) any later version.
22
+#
23
+# This program is distributed in the hope that it will be useful,
24
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26
+# GNU General Public License for more details.
27
+#
28
+# You should have received a copy of the GNU General Public License
29
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
30
+
31
+PROJECT_NAME='freedombone'
32
+
33
+export TEXTDOMAIN=${PROJECT_NAME}-mirrors
34
+export TEXTDOMAINDIR="/usr/share/locale"
35
+
36
+# Minimum number of characters in a password
37
+MINIMUM_PASSWORD_LENGTH=10
38
+
39
+CONFIGURATION_FILE="/root/${PROJECT_NAME}.cfg"
40
+
41
+# if this is blank then just use the default repos
42
+FRIENDS_MIRRORS_SERVER=
43
+REPOS=
44
+MIRRORS_BASE=/home/mirrors/mirrors
45
+MY_MIRRORS_PASSWORD=
46
+FRIENDS_MIRRORS_PASSWORD=
47
+NEW_MIRRORS='no'
48
+FRIENDS_MIRRORS_SSH_PORT=2222
49
+
50
+MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
51
+if [ ! -f $MAIN_COMMAND ]; then
52
+    MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
53
+fi
54
+
55
+REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
56
+
57
+# obtain the mirrors password if it exists
58
+if [ -f $CONFIGURATION_FILE ]; then
59
+    if ! grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
60
+        MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
61
+    fi
62
+    if ! grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
63
+        FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
64
+    fi
65
+    if ! grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
66
+        FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
67
+    fi
68
+    if ! grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
69
+        FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
70
+    fi
71
+fi
72
+
73
+function show_help {
74
+    echo ''
75
+    echo $"${PROJECT_NAME}-mirrors --sync [domain/url] -p [password]"
76
+    echo ''
77
+    echo $'Creates or syncs with a set of git repositories'
78
+    echo ''
79
+    echo $'     --help                   Show help'
80
+    echo $'  -n|--new [yes|no]           Start a new mirrors'
81
+    echo $"  -p|--password [yes|no]      Friend's mirrors user password"
82
+    echo $"  -m|--mypassword [yes|no]    Local mirrors user password"
83
+    echo $"     --port [number]          Friend's server ssh port number"
84
+    echo $"  -s|--sync [domain]          Friend's server domain to sync with"
85
+    echo ''
86
+    exit 0
87
+}
88
+
89
+function create_mirrors_user {
90
+    if [ -d /home/mirrors ]; then
91
+        return
92
+    fi
93
+
94
+    create_password='no'
95
+    if [ ! "$MY_MIRRORS_PASSWORD" ]; then
96
+        create_password='yes'
97
+    fi
98
+    if [ ${#MY_MIRRORS_PASSWORD} -lt ${MINIMUM_PASSWORD_LENGTH} ]; then
99
+        echo $'Password is too short. Creating new one.'
100
+        create_password='yes'
101
+    fi
102
+
103
+    if [[ $create_password == 'yes' ]]; then
104
+        MY_MIRRORS_PASSWORD="$(openssl rand -base64 20 | cut -c1-18)"
105
+    fi
106
+
107
+    useradd -m -p "$MY_MIRRORS_PASSWORD" -s /bin/bash mirrors
108
+
109
+    # remove any existing user files
110
+    rm -rf /home/mirrors/*
111
+
112
+    # store the mirrors password
113
+    if [ -f $CONFIGURATION_FILE ]; then
114
+        if ! grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
115
+            echo "MY_MIRRORS_PASSWORD=$MY_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
116
+        else
117
+            sed -i "s|MY_MIRRORS_PASSWORD=.*|MY_MIRRORS_PASSWORD=${MY_MIRRORS_PASSWORD}|g" $CONFIGURATION_FILE
118
+        fi
119
+    fi
120
+}
121
+
122
+function enable_mirrors_via_onion {
123
+    if ! grep -q 'Host *.onion' /home/mirrors/.ssh/config; then
124
+        if [ ! -d /home/mirrors/.ssh ]; then
125
+            mkdir /home/mirrors/.ssh
126
+        fi
127
+        echo 'Host *.onion' >> /home/mirrors/.ssh/config
128
+        echo 'ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p' >> /home/mirrors/.ssh/config
129
+        chown mirrors:mirrors /home/mirrors/.ssh
130
+        chown mirrors:mirrors /home/mirrors/.ssh/config
131
+    fi
132
+}
133
+
134
+function update_repos_from_friend {
135
+    if [ ! $FRIENDS_MIRRORS_SERVER ]; then
136
+       return
137
+    fi
138
+    if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
139
+        return
140
+    fi
141
+
142
+    new_repos=()
143
+    for line in "${REPOS[@]}"
144
+    do
145
+        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
146
+        mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
147
+        #repo_url=$(echo "$line" | awk -F '=' '{print $2}'  | awk -F '"' '{print $2}')
148
+        friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
149
+        new_line="${repo_name}=\"${friends_repo_url}\""
150
+        new_repos+=($new_line)
151
+    done
152
+    REPOS=("${new_repos[@]}")
153
+}
154
+
155
+function sync_mirrors_repos {
156
+    for line in "${REPOS[@]}"
157
+    do
158
+        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
159
+        repo_url=$(echo "$line" | awk -F '=' '{print $2}'  | awk -F '"' '{print $2}')
160
+        mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
161
+        if [[ ${mirrors_name} != 'debian' ]]; then
162
+            if [[ $NEW_MIRRORS == 'yes' ]]; then
163
+                if [ -d /home/mirrors/${mirrors_name} ]; then
164
+                    rm -rf /home/mirrors/${mirrors_name}
165
+                fi
166
+            fi
167
+            if [ ! -d /home/mirrors/${mirrors_name} ]; then
168
+                if [[ ${repo_url} != 'ssh:'* ]]; then
169
+                    git clone --mirror ${repo_url} /home/mirrors/${mirrors_name}
170
+                else
171
+                    sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git clone --mirror ${repo_url} /home/mirrors/${mirrors_name}
172
+                fi
173
+                if [ ! -d /home/mirrors/${mirrors_name} ]; then
174
+                    echo $"WARNING: failed to mirror repo ${repo_url}"
175
+                fi
176
+            else
177
+                cd /home/mirrors/${mirrors_name}
178
+                git remote set-url origin ${repo_url}
179
+                if [[ ${repo_url} != 'ssh:'* ]]; then
180
+                    git fetch -p origin
181
+                else
182
+                    sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git fetch -p origin
183
+                fi
184
+            fi
185
+        fi
186
+    done
187
+    chown -R mirrors:mirrors /home/mirrors
188
+}
189
+
190
+while [[ $# > 1 ]]
191
+do
192
+key="$1"
193
+
194
+case $key in
195
+    --help)
196
+    show_help
197
+    ;;
198
+    -s|--sync)
199
+    shift
200
+    # use repos on another server
201
+    FRIENDS_MIRRORS_SERVER="$1"
202
+    ;;
203
+    -m|--mypass|--mypassword)
204
+    shift
205
+    MY_MIRRORS_PASSWORD="$1"
206
+    if [ -f $CONFIGURATION_FILE ]; then
207
+        if ! grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
208
+            echo "MY_MIRRORS_PASSWORD=$MY_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
209
+        else
210
+            sed -i "s|MY_MIRRORS_PASSWORD=.*|MY_MIRRORS_PASSWORD=${MY_MIRRORS_PASSWORD}|g" $CONFIGURATION_FILE
211
+        fi
212
+    fi
213
+    ;;
214
+    -p|--pass|--password)
215
+    shift
216
+    FRIENDS_MIRRORS_PASSWORD="$1"
217
+    if [ -f $CONFIGURATION_FILE ]; then
218
+        if ! grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
219
+            echo "FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
220
+        else
221
+            sed -i "s|FRIENDS_MIRRORS_PASSWORD=.*|FRIENDS_MIRRORS_PASSWORD=${FRIENDS_MIRRORS_PASSWORD}|g" $CONFIGURATION_FILE
222
+        fi
223
+    fi
224
+    ;;
225
+    -n|--new)
226
+    shift
227
+    NEW_MIRRORS="$1"
228
+    ;;
229
+    --port)
230
+    shift
231
+    FRIENDS_MIRRORS_SSH_PORT=${1}
232
+    ;;
233
+    *)
234
+    # unknown option
235
+    ;;
236
+esac
237
+shift
238
+done
239
+
240
+create_mirrors_user
241
+enable_mirrors_via_onion
242
+update_repos_from_friend
243
+sync_mirrors_repos
244
+
245
+exit 0

+ 11
- 11
src/freedombone-restore-local View File

116
     echo $"Setting permissions"
116
     echo $"Setting permissions"
117
     for d in /home/*/ ; do
117
     for d in /home/*/ ; do
118
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
118
         USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
119
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
119
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
120
             chown -R $USERNAME:$USERNAME /home/$USERNAME
120
             chown -R $USERNAME:$USERNAME /home/$USERNAME
121
         fi
121
         fi
122
     done
122
     done
356
     if [ -d $USB_MOUNT/backup/mutt ]; then
356
     if [ -d $USB_MOUNT/backup/mutt ]; then
357
         for d in $USB_MOUNT/backup/mutt/*/ ; do
357
         for d in $USB_MOUNT/backup/mutt/*/ ; do
358
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
358
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
359
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
359
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
360
                 if [ ! -d /home/$USERNAME ]; then
360
                 if [ ! -d /home/$USERNAME ]; then
361
                     ${PROJECT_NAME}-adduser $USERNAME
361
                     ${PROJECT_NAME}-adduser $USERNAME
362
                 fi
362
                 fi
388
     if [ -d $USB_MOUNT/backup/gnupg ]; then
388
     if [ -d $USB_MOUNT/backup/gnupg ]; then
389
         for d in $USB_MOUNT/backup/gnupg/*/ ; do
389
         for d in $USB_MOUNT/backup/gnupg/*/ ; do
390
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
390
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
391
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
391
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
392
                 if [ ! -d /home/$USERNAME ]; then
392
                 if [ ! -d /home/$USERNAME ]; then
393
                     ${PROJECT_NAME}-adduser $USERNAME
393
                     ${PROJECT_NAME}-adduser $USERNAME
394
                 fi
394
                 fi
422
     if [ -d $USB_MOUNT/backup/procmail ]; then
422
     if [ -d $USB_MOUNT/backup/procmail ]; then
423
         for d in $USB_MOUNT/backup/procmail/*/ ; do
423
         for d in $USB_MOUNT/backup/procmail/*/ ; do
424
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
424
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
425
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
425
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
426
                 if [ ! -d /home/$USERNAME ]; then
426
                 if [ ! -d /home/$USERNAME ]; then
427
                     ${PROJECT_NAME}-adduser $USERNAME
427
                     ${PROJECT_NAME}-adduser $USERNAME
428
                 fi
428
                 fi
449
     if [ -d $USB_MOUNT/backup/spamassassin ]; then
449
     if [ -d $USB_MOUNT/backup/spamassassin ]; then
450
         for d in $USB_MOUNT/backup/spamassassin/*/ ; do
450
         for d in $USB_MOUNT/backup/spamassassin/*/ ; do
451
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
451
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
452
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
452
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
453
                 if [ -d $USB_MOUNT/backup/spamassassin/$USERNAME ]; then
453
                 if [ -d $USB_MOUNT/backup/spamassassin/$USERNAME ]; then
454
                     if [ ! -d /home/$USERNAME ]; then
454
                     if [ ! -d /home/$USERNAME ]; then
455
                         ${PROJECT_NAME}-adduser $USERNAME
455
                         ${PROJECT_NAME}-adduser $USERNAME
525
     if [ -d $USB_MOUNT/backup/ssh ]; then
525
     if [ -d $USB_MOUNT/backup/ssh ]; then
526
         for d in $USB_MOUNT/backup/ssh/*/ ; do
526
         for d in $USB_MOUNT/backup/ssh/*/ ; do
527
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
527
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
528
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
528
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
529
                 if [ ! -d /home/$USERNAME ]; then
529
                 if [ ! -d /home/$USERNAME ]; then
530
                     ${PROJECT_NAME}-adduser $USERNAME
530
                     ${PROJECT_NAME}-adduser $USERNAME
531
                 fi
531
                 fi
552
     if [ -d $USB_MOUNT/backup/config ]; then
552
     if [ -d $USB_MOUNT/backup/config ]; then
553
         for d in $USB_MOUNT/backup/config/*/ ; do
553
         for d in $USB_MOUNT/backup/config/*/ ; do
554
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
554
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
555
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
555
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
556
                 if [ ! -d /home/$USERNAME ]; then
556
                 if [ ! -d /home/$USERNAME ]; then
557
                     ${PROJECT_NAME}-adduser $USERNAME
557
                     ${PROJECT_NAME}-adduser $USERNAME
558
                 fi
558
                 fi
622
     if [ -d $USB_MOUNT/backup/personal ]; then
622
     if [ -d $USB_MOUNT/backup/personal ]; then
623
         for d in $USB_MOUNT/backup/personal/*/ ; do
623
         for d in $USB_MOUNT/backup/personal/*/ ; do
624
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
624
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
625
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
625
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
626
                 if [ -d $USB_MOUNT/backup/personal/$USERNAME ]; then
626
                 if [ -d $USB_MOUNT/backup/personal/$USERNAME ]; then
627
                     if [ ! -d /home/$USERNAME ]; then
627
                     if [ ! -d /home/$USERNAME ]; then
628
                         ${PROJECT_NAME}-adduser $USERNAME
628
                         ${PROJECT_NAME}-adduser $USERNAME
739
             chown -R www-data:www-data /var/lib/owncloud/assets
739
             chown -R www-data:www-data /var/lib/owncloud/assets
740
             for d in /home/*/ ; do
740
             for d in /home/*/ ; do
741
                 USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
741
                 USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
742
-                if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
742
+                if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
743
                     occ files:scan $USERNAME
743
                     occ files:scan $USERNAME
744
                 fi
744
                 fi
745
             done
745
             done
853
         fi
853
         fi
854
         for d in /home/*/ ; do
854
         for d in /home/*/ ; do
855
             USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
855
             USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
856
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
856
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
857
                 if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
857
                 if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
858
                     mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
858
                     mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
859
                 fi
859
                 fi
894
     if [ -d $USB_MOUNT/backup/mail ]; then
894
     if [ -d $USB_MOUNT/backup/mail ]; then
895
         for d in $USB_MOUNT/backup/mail/*/ ; do
895
         for d in $USB_MOUNT/backup/mail/*/ ; do
896
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
896
             USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
897
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
897
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
898
                 if [ ! -d /home/$USERNAME ]; then
898
                 if [ ! -d /home/$USERNAME ]; then
899
                     ${PROJECT_NAME}-adduser $USERNAME
899
                     ${PROJECT_NAME}-adduser $USERNAME
900
                 fi
900
                 fi

+ 10
- 10
src/freedombone-restore-remote View File

260
     fi
260
     fi
261
     for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do
261
     for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do
262
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
262
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
263
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
263
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
264
             if [ -d $SERVER_DIRECTORY/backup/mutt/$USERNAME ]; then
264
             if [ -d $SERVER_DIRECTORY/backup/mutt/$USERNAME ]; then
265
                 if [ ! -d /home/$USERNAME ]; then
265
                 if [ ! -d /home/$USERNAME ]; then
266
                     ${PROJECT_NAME}-adduser $USERNAME
266
                     ${PROJECT_NAME}-adduser $USERNAME
291
     fi
291
     fi
292
     for d in $SERVER_DIRECTORY/backup/gnupg/*/ ; do
292
     for d in $SERVER_DIRECTORY/backup/gnupg/*/ ; do
293
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
293
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
294
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
294
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
295
             if [ -d $SERVER_DIRECTORY/backup/gnupg/$USERNAME ]; then
295
             if [ -d $SERVER_DIRECTORY/backup/gnupg/$USERNAME ]; then
296
                 if [ ! -d /home/$USERNAME ]; then
296
                 if [ ! -d /home/$USERNAME ]; then
297
                     ${PROJECT_NAME}-adduser $USERNAME
297
                     ${PROJECT_NAME}-adduser $USERNAME
323
     fi
323
     fi
324
     for d in $SERVER_DIRECTORY/backup/procmail/*/ ; do
324
     for d in $SERVER_DIRECTORY/backup/procmail/*/ ; do
325
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
325
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
326
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
326
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
327
             if [ -d $SERVER_DIRECTORY/backup/procmail/$USERNAME ]; then
327
             if [ -d $SERVER_DIRECTORY/backup/procmail/$USERNAME ]; then
328
                 if [ ! -d /home/$USERNAME ]; then
328
                 if [ ! -d /home/$USERNAME ]; then
329
                     ${PROJECT_NAME}-adduser $USERNAME
329
                     ${PROJECT_NAME}-adduser $USERNAME
349
     fi
349
     fi
350
     for d in $SERVER_DIRECTORY/backup/spamassassin/*/ ; do
350
     for d in $SERVER_DIRECTORY/backup/spamassassin/*/ ; do
351
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
351
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
352
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
352
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
353
             if [ -d $SERVER_DIRECTORY/backup/spamassassin/$USERNAME ]; then
353
             if [ -d $SERVER_DIRECTORY/backup/spamassassin/$USERNAME ]; then
354
                 if [ ! -d /home/$USERNAME ]; then
354
                 if [ ! -d /home/$USERNAME ]; then
355
                     ${PROJECT_NAME}-adduser $USERNAME
355
                     ${PROJECT_NAME}-adduser $USERNAME
411
     fi
411
     fi
412
     for d in $SERVER_DIRECTORY/backup/ssh/*/ ; do
412
     for d in $SERVER_DIRECTORY/backup/ssh/*/ ; do
413
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
413
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
414
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
414
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
415
             if [ -d $SERVER_DIRECTORY/backup/ssh/$USERNAME ]; then
415
             if [ -d $SERVER_DIRECTORY/backup/ssh/$USERNAME ]; then
416
                 if [ ! -d /home/$USERNAME ]; then
416
                 if [ ! -d /home/$USERNAME ]; then
417
                     ${PROJECT_NAME}-adduser $USERNAME
417
                     ${PROJECT_NAME}-adduser $USERNAME
437
     fi
437
     fi
438
     for d in $SERVER_DIRECTORY/backup/config/*/ ; do
438
     for d in $SERVER_DIRECTORY/backup/config/*/ ; do
439
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
439
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
440
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
440
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
441
             if [ -d $SERVER_DIRECTORY/backup/config/$USERNAME ]; then
441
             if [ -d $SERVER_DIRECTORY/backup/config/$USERNAME ]; then
442
                 if [ ! -d /home/$USERNAME ]; then
442
                 if [ ! -d /home/$USERNAME ]; then
443
                     ${PROJECT_NAME}-adduser $USERNAME
443
                     ${PROJECT_NAME}-adduser $USERNAME
504
     fi
504
     fi
505
     for d in $SERVER_DIRECTORY/backup/personal/*/ ; do
505
     for d in $SERVER_DIRECTORY/backup/personal/*/ ; do
506
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
506
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
507
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
507
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
508
             if [ -d $SERVER_DIRECTORY/backup/personal/$USERNAME ]; then
508
             if [ -d $SERVER_DIRECTORY/backup/personal/$USERNAME ]; then
509
                 if [ ! -d /home/$USERNAME ]; then
509
                 if [ ! -d /home/$USERNAME ]; then
510
                     ${PROJECT_NAME}-adduser $USERNAME
510
                     ${PROJECT_NAME}-adduser $USERNAME
624
             chown -R www-data:www-data /var/lib/owncloud/assets
624
             chown -R www-data:www-data /var/lib/owncloud/assets
625
             for d in /home/*/ ; do
625
             for d in /home/*/ ; do
626
                 USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
626
                 USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
627
-                if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
627
+                if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
628
                     occ files:scan $USERNAME
628
                     occ files:scan $USERNAME
629
                 fi
629
                 fi
630
             done
630
             done
733
         fi
733
         fi
734
         for d in /home/*/ ; do
734
         for d in /home/*/ ; do
735
             USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
735
             USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
736
-            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
736
+            if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
737
                 if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
737
                 if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
738
                     mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
738
                     mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
739
                 fi
739
                 fi
825
     fi
825
     fi
826
     for d in $SERVER_DIRECTORY/backup/mail/*/ ; do
826
     for d in $SERVER_DIRECTORY/backup/mail/*/ ; do
827
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
827
         USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
828
-        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; then
828
+        if [[ $USERNAME != "git" && $USRNAME != "mirrors" ]]; then
829
             if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then
829
             if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then
830
                 if [ ! -d /home/$USERNAME ]; then
830
                 if [ ! -d /home/$USERNAME ]; then
831
                     ${PROJECT_NAME}-adduser $USERNAME
831
                     ${PROJECT_NAME}-adduser $USERNAME

+ 0
- 245
src/freedombone-trove View File

1
-#!/bin/bash
2
-#
3
-# .---.                  .              .
4
-# |                      |              |
5
-# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
-# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
-# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
-#
9
-#                    Freedom in the Cloud
10
-#
11
-# Mirror git repos which the project depends on
12
-#
13
-# License
14
-# =======
15
-#
16
-# Copyright (C) 2015-2016 Bob Mottram <bob@robotics.uk.to>
17
-#
18
-# This program is free software: you can redistribute it and/or modify
19
-# it under the terms of the GNU General Public License as published by
20
-# the Free Software Foundation, either version 3 of the License, or
21
-# (at your option) any later version.
22
-#
23
-# This program is distributed in the hope that it will be useful,
24
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26
-# GNU General Public License for more details.
27
-#
28
-# You should have received a copy of the GNU General Public License
29
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
30
-
31
-PROJECT_NAME='freedombone'
32
-
33
-export TEXTDOMAIN=${PROJECT_NAME}-trove
34
-export TEXTDOMAINDIR="/usr/share/locale"
35
-
36
-# Minimum number of characters in a password
37
-MINIMUM_PASSWORD_LENGTH=10
38
-
39
-CONFIGURATION_FILE="/root/${PROJECT_NAME}.cfg"
40
-
41
-# if this is blank then just use the default repos
42
-FRIENDS_TROVE_SERVER=
43
-REPOS=
44
-TROVE_BASE=/home/trove/trove
45
-MY_TROVE_PASSWORD=
46
-FRIENDS_TROVE_PASSWORD=
47
-NEW_TROVE='no'
48
-FRIENDS_TROVE_SSH_PORT=2222
49
-
50
-MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
51
-if [ ! -f $MAIN_COMMAND ]; then
52
-    MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
53
-fi
54
-
55
-REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
56
-
57
-# obtain the trove password if it exists
58
-if [ -f $CONFIGURATION_FILE ]; then
59
-    if ! grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
60
-        MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
61
-    fi
62
-    if ! grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
63
-        FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
64
-    fi
65
-    if ! grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
66
-        FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
67
-    fi
68
-    if ! grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
69
-        FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
70
-    fi
71
-fi
72
-
73
-function show_help {
74
-    echo ''
75
-    echo $"${PROJECT_NAME}-trove --sync [domain/url] -p [password]"
76
-    echo ''
77
-    echo $'Creates or syncs with a set of git repositories'
78
-    echo ''
79
-    echo $'     --help                   Show help'
80
-    echo $'  -n|--new [yes|no]           Start a new trove'
81
-    echo $"  -p|--password [yes|no]      Friend's trove user password"
82
-    echo $"  -m|--mypassword [yes|no]    Local trove user password"
83
-    echo $"     --port [number]          Friend's server ssh port number"
84
-    echo $"  -s|--sync [domain]          Friend's server domain to sync with"
85
-    echo ''
86
-    exit 0
87
-}
88
-
89
-function create_trove_user {
90
-    if [ -d /home/trove ]; then
91
-        return
92
-    fi
93
-
94
-    create_password='no'
95
-    if [ ! "$MY_TROVE_PASSWORD" ]; then
96
-        create_password='yes'
97
-    fi
98
-    if [ ${#MY_TROVE_PASSWORD} -lt ${MINIMUM_PASSWORD_LENGTH} ]; then
99
-        echo $'Password is too short. Creating new one.'
100
-        create_password='yes'
101
-    fi
102
-
103
-    if [[ $create_password == 'yes' ]]; then
104
-        MY_TROVE_PASSWORD="$(openssl rand -base64 20 | cut -c1-18)"
105
-    fi
106
-
107
-    useradd -m -p "$MY_TROVE_PASSWORD" -s /bin/bash trove
108
-
109
-    # remove any existing user files
110
-    rm -rf /home/trove/*
111
-
112
-    # store the trove password
113
-    if [ -f $CONFIGURATION_FILE ]; then
114
-        if ! grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
115
-            echo "MY_TROVE_PASSWORD=$MY_TROVE_PASSWORD" >> $CONFIGURATION_FILE
116
-        else
117
-            sed -i "s|MY_TROVE_PASSWORD=.*|MY_TROVE_PASSWORD=${MY_TROVE_PASSWORD}|g" $CONFIGURATION_FILE
118
-        fi
119
-    fi
120
-}
121
-
122
-function enable_trove_via_onion {
123
-    if ! grep -q 'Host *.onion' /home/trove/.ssh/config; then
124
-        if [ ! -d /home/trove/.ssh ]; then
125
-            mkdir /home/trove/.ssh
126
-        fi
127
-        echo 'Host *.onion' >> /home/trove/.ssh/config
128
-        echo 'ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p' >> /home/trove/.ssh/config
129
-        chown trove:trove /home/trove/.ssh
130
-        chown trove:trove /home/trove/.ssh/config
131
-    fi
132
-}
133
-
134
-function update_repos_from_friend {
135
-    if [ ! $FRIENDS_TROVE_SERVER ]; then
136
-       return
137
-    fi
138
-    if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
139
-        return
140
-    fi
141
-
142
-    new_repos=()
143
-    for line in "${REPOS[@]}"
144
-    do
145
-        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
146
-        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
147
-        #repo_url=$(echo "$line" | awk -F '=' '{print $2}'  | awk -F '"' '{print $2}')
148
-        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
149
-        new_line="${repo_name}=\"${friends_repo_url}\""
150
-        new_repos+=($new_line)
151
-    done
152
-    REPOS=("${new_repos[@]}")
153
-}
154
-
155
-function sync_trove_repos {
156
-    for line in "${REPOS[@]}"
157
-    do
158
-        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
159
-        repo_url=$(echo "$line" | awk -F '=' '{print $2}'  | awk -F '"' '{print $2}')
160
-        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
161
-        if [[ ${trove_name} != 'debian' ]]; then
162
-            if [[ $NEW_TROVE == 'yes' ]]; then
163
-                if [ -d /home/trove/${trove_name} ]; then
164
-                    rm -rf /home/trove/${trove_name}
165
-                fi
166
-            fi
167
-            if [ ! -d /home/trove/${trove_name} ]; then
168
-                if [[ ${repo_url} != 'ssh:'* ]]; then
169
-                    git clone --mirror ${repo_url} /home/trove/${trove_name}
170
-                else
171
-                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone --mirror ${repo_url} /home/trove/${trove_name}
172
-                fi
173
-                if [ ! -d /home/trove/${trove_name} ]; then
174
-                    echo $"WARNING: failed to mirror repo ${repo_url}"
175
-                fi
176
-            else
177
-                cd /home/trove/${trove_name}
178
-                git remote set-url origin ${repo_url}
179
-                if [[ ${repo_url} != 'ssh:'* ]]; then
180
-                    git fetch -p origin
181
-                else
182
-                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git fetch -p origin
183
-                fi
184
-            fi
185
-        fi
186
-    done
187
-    chown -R trove:trove /home/trove
188
-}
189
-
190
-while [[ $# > 1 ]]
191
-do
192
-key="$1"
193
-
194
-case $key in
195
-    --help)
196
-    show_help
197
-    ;;
198
-    -s|--sync)
199
-    shift
200
-    # use repos on another server
201
-    FRIENDS_TROVE_SERVER="$1"
202
-    ;;
203
-    -m|--mypass|--mypassword)
204
-    shift
205
-    MY_TROVE_PASSWORD="$1"
206
-    if [ -f $CONFIGURATION_FILE ]; then
207
-        if ! grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
208
-            echo "MY_TROVE_PASSWORD=$MY_TROVE_PASSWORD" >> $CONFIGURATION_FILE
209
-        else
210
-            sed -i "s|MY_TROVE_PASSWORD=.*|MY_TROVE_PASSWORD=${MY_TROVE_PASSWORD}|g" $CONFIGURATION_FILE
211
-        fi
212
-    fi
213
-    ;;
214
-    -p|--pass|--password)
215
-    shift
216
-    FRIENDS_TROVE_PASSWORD="$1"
217
-    if [ -f $CONFIGURATION_FILE ]; then
218
-        if ! grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
219
-            echo "FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD" >> $CONFIGURATION_FILE
220
-        else
221
-            sed -i "s|FRIENDS_TROVE_PASSWORD=.*|FRIENDS_TROVE_PASSWORD=${FRIENDS_TROVE_PASSWORD}|g" $CONFIGURATION_FILE
222
-        fi
223
-    fi
224
-    ;;
225
-    -n|--new)
226
-    shift
227
-    NEW_TROVE="$1"
228
-    ;;
229
-    --port)
230
-    shift
231
-    FRIENDS_TROVE_SSH_PORT=${1}
232
-    ;;
233
-    *)
234
-    # unknown option
235
-    ;;
236
-esac
237
-shift
238
-done
239
-
240
-create_trove_user
241
-enable_trove_via_onion
242
-update_repos_from_friend
243
-sync_trove_repos
244
-
245
-exit 0

+ 26
- 26
src/freedombone-upgrade View File

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=
40
+FRIENDS_MIRRORS_SERVER=
41
+FRIENDS_MIRRORS_SSH_PORT=
42
+FRIENDS_MIRRORS_PASSWORD=
43
+MY_MIRRORS_PASSWORD=
44
 
44
 
45
 function read_repo_servers {
45
 function read_repo_servers {
46
     if [ -f $CONFIGURATION_FILE ]; then
46
     if [ -f $CONFIGURATION_FILE ]; then
47
-        if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
48
-            FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
47
+        if grep -q "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE; then
48
+            FRIENDS_MIRRORS_SERVER=$(grep "FRIENDS_MIRRORS_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
49
         fi
49
         fi
50
-        if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
51
-            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
50
+        if grep -q "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE; then
51
+            FRIENDS_MIRRORS_SSH_PORT=$(grep "FRIENDS_MIRRORS_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
52
         fi
52
         fi
53
-        if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
54
-            MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
53
+        if grep -q "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
54
+            MY_MIRRORS_PASSWORD=$(grep "MY_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
55
         fi
55
         fi
56
-        if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
57
-            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
56
+        if grep -q "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE; then
57
+            FRIENDS_MIRRORS_PASSWORD=$(grep "FRIENDS_MIRRORS_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
58
         fi
58
         fi
59
     fi
59
     fi
60
 
60
 
61
-    if [ ! $FRIENDS_TROVE_SERVER ]; then
61
+    if [ ! $FRIENDS_MIRRORS_SERVER ]; then
62
         return
62
         return
63
     fi
63
     fi
64
-    if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
64
+    if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
65
         return
65
         return
66
     fi
66
     fi
67
 
67
 
75
     for line in "${REPOS[@]}"
75
     for line in "${REPOS[@]}"
76
     do
76
     do
77
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
77
         repo_name=$(echo "$line" | awk -F '=' '{print $1}')
78
-        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
79
-        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
78
+        mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
79
+        friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
80
         ${repo_name}="${friends_repo_url}"
80
         ${repo_name}="${friends_repo_url}"
81
     done
81
     done
82
 }
82
 }
85
     repo_url="$1"
85
     repo_url="$1"
86
     destination_dir="$2"
86
     destination_dir="$2"
87
     if [[ "$repo_url" == "ssh:"* ]]; then
87
     if [[ "$repo_url" == "ssh:"* ]]; then
88
-        if [ "${FRIENDS_TROVE_SERVER}" ]; then
89
-            if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
90
-                if [ "$FRIENDS_TROVE_PASSWORD" ]; then
91
-                    if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
92
-                        sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
88
+        if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
89
+            if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
90
+                if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
91
+                    if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
92
+                        sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git clone "$repo_url" "$destination_dir"
93
                         return
93
                         return
94
                     fi
94
                     fi
95
                 fi
95
                 fi
107
     git stash
107
     git stash
108
     git remote set-url origin $1
108
     git remote set-url origin $1
109
     git checkout master
109
     git checkout master
110
-    if [ "${FRIENDS_TROVE_SERVER}" ]; then
111
-        if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
112
-            if [ "$FRIENDS_TROVE_PASSWORD" ]; then
113
-                if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
114
-                    sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
110
+    if [ "${FRIENDS_MIRRORS_SERVER}" ]; then
111
+        if [ ${#FRIENDS_MIRRORS_SERVER} -gt 2 ]; then
112
+            if [ "$FRIENDS_MIRRORS_PASSWORD" ]; then
113
+                if [ ${#FRIENDS_MIRRORS_PASSWORD} -gt 2 ]; then
114
+                    sshpass -p "$FRIENDS_MIRRORS_PASSWORD" git pull
115
                     if [ $2 ]; then
115
                     if [ $2 ]; then
116
                         git checkout $2 -b $2
116
                         git checkout $2 -b $2
117
                     fi
117
                     fi