浏览代码

trove command

Bob Mottram 9 年前
父节点
当前提交
2fbdac891b

二进制
man/freedombone-trove.1.gz 查看文件


+ 30
- 11
src/freedombone 查看文件

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=
97
+
91
 # An optional password to log into IRC. This applies to all users
98
 # An optional password to log into IRC. This applies to all users
92
 IRC_PASSWORD=
99
 IRC_PASSWORD=
93
 
100
 
102
 DDNS_PASSWORD=
109
 DDNS_PASSWORD=
103
 CURRENT_DDNS_DOMAIN=
110
 CURRENT_DDNS_DOMAIN=
104
 
111
 
105
-EXIM_ONION_REPO='https://github.com/petterreinholdtsen/exim4-smtorp'
112
+EXIM_ONION_REPO="https://github.com/petterreinholdtsen/exim4-smtorp"
106
 
113
 
107
 NGINX_ENSITE_REPO="https://github.com/perusio/nginx_ensite"
114
 NGINX_ENSITE_REPO="https://github.com/perusio/nginx_ensite"
108
 NGINX_ENSITE_COMMIT='fa4d72ce1c0a490442c8474e9c8dc21ed52c93d0'
115
 NGINX_ENSITE_COMMIT='fa4d72ce1c0a490442c8474e9c8dc21ed52c93d0'
193
 HUBZILLA_CODE=
200
 HUBZILLA_CODE=
194
 HUBZILLA_ONION_PORT=8085
201
 HUBZILLA_ONION_PORT=8085
195
 HUBZILLA_REPO="https://github.com/redmatrix/hubzilla.git"
202
 HUBZILLA_REPO="https://github.com/redmatrix/hubzilla.git"
196
-HUBZILLA_THEMES_REPO='https://github.com/DeadSuperHero/redmatrix-themes'
203
+HUBZILLA_THEMES_REPO="https://github.com/DeadSuperHero/redmatrix-themes"
197
 HUBZILLA_ADDONS_REPO="https://github.com/redmatrix/hubzilla-addons.git"
204
 HUBZILLA_ADDONS_REPO="https://github.com/redmatrix/hubzilla-addons.git"
198
 HUBZILLA_ADMIN_PASSWORD=
205
 HUBZILLA_ADMIN_PASSWORD=
199
 HUBZILLA_COMMIT='761afd029d97703f2f7609d546b7b5f3d257c601'
206
 HUBZILLA_COMMIT='761afd029d97703f2f7609d546b7b5f3d257c601'
428
 ENABLE_SOCIAL_KEY_MANAGEMENT="no"
435
 ENABLE_SOCIAL_KEY_MANAGEMENT="no"
429
 
436
 
430
 TOX_PORT=33445
437
 TOX_PORT=33445
431
-TOX_REPO='git://github.com/irungentoo/toxcore.git'
432
-TOXID_REPO='https://github.com/bashrc/toxid'
438
+TOX_REPO="git://github.com/irungentoo/toxcore.git"
439
+TOXID_REPO="https://github.com/bashrc/toxid"
433
 TOX_COMMIT='73b2144edcfd1ca617e9054479b66ab0c0361a14'
440
 TOX_COMMIT='73b2144edcfd1ca617e9054479b66ab0c0361a14'
434
 TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt
441
 TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt
435
 # These are some default nodes, but you can replace them with trusted nodes
442
 # These are some default nodes, but you can replace them with trusted nodes
443
 TOXIC_COMMIT='88270827a96b2082e254677f35585ed24581a42c'
450
 TOXIC_COMMIT='88270827a96b2082e254677f35585ed24581a42c'
444
 
451
 
445
 #ZERONET_REPO='https://github.com/HelloZeroNet/ZeroNet.git'
452
 #ZERONET_REPO='https://github.com/HelloZeroNet/ZeroNet.git'
446
-ZERONET_REPO='https://github.com/HelloZeroNet/ZeroNet.git'
453
+ZERONET_REPO="https://github.com/HelloZeroNet/ZeroNet.git"
447
 ZERONET_COMMIT='675bd462556c541d65e2d95f91f899146a373aad'
454
 ZERONET_COMMIT='675bd462556c541d65e2d95f91f899146a373aad'
448
-ZERONET_BLOG_REPO='https://github.com/HelloZeroNet/ZeroBlog'
455
+ZERONET_BLOG_REPO="https://github.com/HelloZeroNet/ZeroBlog"
449
 ZERONET_BLOG_COMMIT='bbb0d6c36465fed2e6df71f1aab45fcc9c6ad609'
456
 ZERONET_BLOG_COMMIT='bbb0d6c36465fed2e6df71f1aab45fcc9c6ad609'
450
-ZERONET_MAIL_REPO='https://github.com/HelloZeroNet/ZeroMail'
457
+ZERONET_MAIL_REPO="https://github.com/HelloZeroNet/ZeroMail"
451
 ZERONET_MAIL_COMMIT='955af09d643c72b02e4983d71eca5c0c93a6c131'
458
 ZERONET_MAIL_COMMIT='955af09d643c72b02e4983d71eca5c0c93a6c131'
452
-ZERONET_FORUM_REPO='https://github.com/HelloZeroNet/ZeroTalk'
459
+ZERONET_FORUM_REPO="https://github.com/HelloZeroNet/ZeroTalk"
453
 ZERONET_FORUM_COMMIT='e2d2c9cb1cfbfef91b244935efb5c14c2ad95faa'
460
 ZERONET_FORUM_COMMIT='e2d2c9cb1cfbfef91b244935efb5c14c2ad95faa'
454
 ZERONET_URL=http://127.0.0.1:43110
461
 ZERONET_URL=http://127.0.0.1:43110
455
 ZERONET_PORT=15441
462
 ZERONET_PORT=15441
470
 DH_KEYLENGTH=2048
477
 DH_KEYLENGTH=2048
471
 
478
 
472
 # repo for atheros AR9271 wifi driver
479
 # repo for atheros AR9271 wifi driver
473
-ATHEROS_WIFI_REPO='https://github.com/qca/open-ath9k-htc-firmware.git'
480
+ATHEROS_WIFI_REPO="https://github.com/qca/open-ath9k-htc-firmware.git"
474
 
481
 
475
 # Whether Let's Encrypt is enabled for all sites
482
 # Whether Let's Encrypt is enabled for all sites
476
 LETSENCRYPT_ENABLED="no"
483
 LETSENCRYPT_ENABLED="no"
916
         if [[ $CONFIGURATION_FILE != "/root/${PROJECT_NAME}.cfg" ]]; then
923
         if [[ $CONFIGURATION_FILE != "/root/${PROJECT_NAME}.cfg" ]]; then
917
             cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
924
             cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
918
         fi
925
         fi
926
+        if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
927
+            FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
928
+        fi
929
+        if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
930
+            FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
931
+        fi
932
+        if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
933
+            MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
934
+        fi
935
+        if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
936
+            FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
937
+        fi
919
         if grep -q "PROJECT_WEBSITE" $CONFIGURATION_FILE; then
938
         if grep -q "PROJECT_WEBSITE" $CONFIGURATION_FILE; then
920
             PROJECT_WEBSITE=$(grep "PROJECT_WEBSITE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
939
             PROJECT_WEBSITE=$(grep "PROJECT_WEBSITE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
921
         fi
940
         fi
4656
     echo '#!/bin/bash' > /usr/bin/filterspam
4675
     echo '#!/bin/bash' > /usr/bin/filterspam
4657
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterspam
4676
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterspam
4658
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterspam
4677
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterspam
4659
-    echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/filterspam
4678
+    echo '    if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then' >> /usr/bin/filterspam
4660
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-spam' >> /usr/bin/filterspam
4679
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-spam' >> /usr/bin/filterspam
4661
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterspam
4680
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterspam
4662
     echo '           exit' >> /usr/bin/filterspam
4681
     echo '           exit' >> /usr/bin/filterspam
4678
     echo '#!/bin/bash' > /usr/bin/filterham
4697
     echo '#!/bin/bash' > /usr/bin/filterham
4679
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterham
4698
     echo 'for d in /home/*/ ; do' >> /usr/bin/filterham
4680
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterham
4699
     echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/filterham
4681
-    echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/filterham
4700
+    echo '    if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; then' >> /usr/bin/filterham
4682
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-ham' >> /usr/bin/filterham
4701
     echo '        MAILDIR=/home/$USERNAME/Maildir/.learn-ham' >> /usr/bin/filterham
4683
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterham
4702
     echo '        if [ ! -d "$MAILDIR" ]; then' >> /usr/bin/filterham
4684
     echo '            exit' >> /usr/bin/filterham
4703
     echo '            exit' >> /usr/bin/filterham

+ 1
- 1
src/freedombone-archive-mail 查看文件

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" ]]; then
38
+    if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; 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 查看文件

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" ]]; then
268
+        if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; 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 查看文件

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" ]]; then
181
+        if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; 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" ]]; then
607
+            if [[ $USERNAME != "git" && $USERNAME != "trove" ]]; 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

+ 1
- 1
src/freedombone-controlpanel 查看文件

261
     echo '--------------------------------------------------------------------------'
261
     echo '--------------------------------------------------------------------------'
262
     for d in /home/*/ ; do
262
     for d in /home/*/ ; do
263
         USRNAME=$(echo "$d" | awk -F '/' '{print $3}')
263
         USRNAME=$(echo "$d" | awk -F '/' '{print $3}')
264
-        if [[ $USRNAME != "git" ]]; then
264
+        if [[ $USRNAME != "git" && $USRNAME != "trove" ]]; then
265
             echo -n -e "$(pad_string ${USRNAME})"
265
             echo -n -e "$(pad_string ${USRNAME})"
266
             # get the SIP extension
266
             # get the SIP extension
267
             SIPEXT=
267
             SIPEXT=

+ 11
- 11
src/freedombone-restore-local 查看文件

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" ]]; then
119
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
359
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
391
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
425
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
452
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
528
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
555
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
625
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
742
+                if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
856
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
897
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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 查看文件

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" ]]; then
263
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
294
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
326
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
352
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
414
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
440
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
507
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
627
+                if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
736
+            if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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" ]]; then
828
+        if [[ $USERNAME != "git" && $USRNAME != "trove" ]]; 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

+ 217
- 0
src/freedombone-trove 查看文件

1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Host 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 update_repos_from_friend {
123
+    if [ ! $FRIENDS_TROVE_SERVER ] then
124
+       return
125
+    fi
126
+
127
+    new_repos=()
128
+    for line in "${REPOS[@]}"
129
+    do
130
+        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
131
+        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
132
+        #repo_url=$(echo "$line" | awk -F '=' '{print $2}'  | awk -F '"' '{print $2}')
133
+        friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
134
+        new_line="${repo_name}=\"${friends_repo_url}\""
135
+        new_repos+=($new_line)
136
+    done
137
+    REPOS=("${new_repos[@]}")
138
+}
139
+
140
+function sync_trove_repos {
141
+    for line in "${REPOS[@]}"
142
+    do
143
+        repo_name=$(echo "$line" | awk -F '=' '{print $1}')
144
+        repo_url=$(echo "$line" | awk -F '=' '{print $2}'  | awk -F '"' '{print $2}')
145
+        trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
146
+        if [[ $NEW_TROVE == 'yes' ]]; then
147
+            if [ -d /home/trove/${trove_name} ]; then
148
+                rm -rf /home/trove/${trove_name}
149
+            fi
150
+        fi
151
+        if [ ! -d /home/trove/${trove_name} ]; then
152
+            git clone --mirror ${repo_url} /home/trove/${trove_name}
153
+            if [ ! -d /home/trove/${trove_name} ]; then
154
+                echo $"WARNING: failed to mirror repo ${repo_url}"
155
+            fi
156
+        else
157
+            cd /home/trove/${trove_name}
158
+            git fetch -p origin
159
+        fi
160
+    done
161
+}
162
+
163
+while [[ $# > 1 ]]
164
+do
165
+key="$1"
166
+
167
+case $key in
168
+    --help)
169
+    show_help
170
+    ;;
171
+    -s|--sync)
172
+    shift
173
+    # use repos on another server
174
+    FRIENDS_TROVE_SERVER="$1"
175
+    ;;
176
+    -m|--mypass|--mypassword)
177
+    shift
178
+    MY_TROVE_PASSWORD="$1"
179
+    if [ -f $CONFIGURATION_FILE ]; then
180
+        if ! grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
181
+            echo "MY_TROVE_PASSWORD=$MY_TROVE_PASSWORD" >> $CONFIGURATION_FILE
182
+        else
183
+            sed -i "s|MY_TROVE_PASSWORD=.*|MY_TROVE_PASSWORD=${MY_TROVE_PASSWORD}|g" $CONFIGURATION_FILE
184
+        fi
185
+    fi
186
+    ;;
187
+    -p|--pass|--password)
188
+    shift
189
+    FRIENDS_TROVE_PASSWORD="$1"
190
+    if [ -f $CONFIGURATION_FILE ]; then
191
+        if ! grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
192
+            echo "FRIENDS_TROVE_PASSWORD=$FRIENDS_TROVE_PASSWORD" >> $CONFIGURATION_FILE
193
+        else
194
+            sed -i "s|FRIENDS_TROVE_PASSWORD=.*|FRIENDS_TROVE_PASSWORD=${FRIENDS_TROVE_PASSWORD}|g" $CONFIGURATION_FILE
195
+        fi
196
+    fi
197
+    ;;
198
+    -n|--new)
199
+    shift
200
+    NEW_TROVE="$1"
201
+    ;;
202
+    --port)
203
+    shift
204
+    FRIENDS_TROVE_SSH_PORT=${1}
205
+    ;;
206
+    *)
207
+    # unknown option
208
+    ;;
209
+esac
210
+shift
211
+done
212
+
213
+create_trove_user
214
+update_repos_from_friend
215
+sync_trove_repos
216
+
217
+exit 0