|
@@ -159,6 +159,12 @@ INSTALL_DIR=$HOME/build
|
159
|
159
|
# device name for an attached usb drive
|
160
|
160
|
USB_DRIVE=/dev/sda1
|
161
|
161
|
|
|
162
|
+# Location where the USB drive is mounted to
|
|
163
|
+USB_MOUNT=/media/usb
|
|
164
|
+
|
|
165
|
+# Name of a script used to create a backup of the system
|
|
166
|
+BACKUP_SCRIPT_NAME="backup"
|
|
167
|
+
|
162
|
168
|
# memory limit for php in MB
|
163
|
169
|
MAX_PHP_MEMORY=32
|
164
|
170
|
|
|
@@ -306,74 +312,74 @@ function search_for_attached_usb_drive {
|
306
|
312
|
return
|
307
|
313
|
fi
|
308
|
314
|
if [ -b $USB_DRIVE ]; then
|
309
|
|
- if [ ! -d /media/usb ]; then
|
|
315
|
+ if [ ! -d $USB_MOUNT ]; then
|
310
|
316
|
echo 'Mounting USB drive'
|
311
|
|
- mkdir /media/usb
|
312
|
|
- mount $USB_DRIVE /media/usb
|
|
317
|
+ mkdir $USB_MOUNT
|
|
318
|
+ mount $USB_DRIVE $USB_MOUNT
|
313
|
319
|
fi
|
314
|
320
|
if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
|
315
|
|
- if [ -d /media/usb/Maildir ]; then
|
|
321
|
+ if [ -d $USB_MOUNT/Maildir ]; then
|
316
|
322
|
echo 'Maildir found on USB drive'
|
317
|
|
- IMPORT_MAILDIR=/media/usb/Maildir
|
|
323
|
+ IMPORT_MAILDIR=$USB_MOUNT/Maildir
|
318
|
324
|
fi
|
319
|
|
- if [ -d /media/usb/.gnupg ]; then
|
|
325
|
+ if [ -d $USB_MOUNT/.gnupg ]; then
|
320
|
326
|
echo 'Importing GPG keyring'
|
321
|
|
- cp -r /media/usb/.gnupg /home/$MY_USERNAME
|
|
327
|
+ cp -r $USB_MOUNT/.gnupg /home/$MY_USERNAME
|
322
|
328
|
chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.gnupg
|
323
|
329
|
if [ -f /home/$MY_USERNAME/.gnupg/secring.gpg ]; then
|
324
|
|
- shred -zu /media/usb/.gnupg/secring.gpg
|
325
|
|
- shred -zu /media/usb/.gnupg/random_seed
|
326
|
|
- shred -zu /media/usb/.gnupg/trustdb.gpg
|
327
|
|
- rm -rf /media/usb/.gnupg
|
|
330
|
+ shred -zu $USB_MOUNT/.gnupg/secring.gpg
|
|
331
|
+ shred -zu $USB_MOUNT/.gnupg/random_seed
|
|
332
|
+ shred -zu $USB_MOUNT/.gnupg/trustdb.gpg
|
|
333
|
+ rm -rf $USB_MOUNT/.gnupg
|
328
|
334
|
else
|
329
|
335
|
echo 'GPG files did not copy'
|
330
|
336
|
exit 7
|
331
|
337
|
fi
|
332
|
338
|
fi
|
333
|
339
|
|
334
|
|
- if [ -f /media/usb/private_key.gpg ]; then
|
|
340
|
+ if [ -f $USB_MOUNT/private_key.gpg ]; then
|
335
|
341
|
echo 'GPG private key found on USB drive'
|
336
|
|
- MY_GPG_PRIVATE_KEY=/media/usb/private_key.gpg
|
|
342
|
+ MY_GPG_PRIVATE_KEY=$USB_MOUNT/private_key.gpg
|
337
|
343
|
fi
|
338
|
|
- if [ -f /media/usb/public_key.gpg ]; then
|
|
344
|
+ if [ -f $USB_MOUNT/public_key.gpg ]; then
|
339
|
345
|
echo 'GPG public key found on USB drive'
|
340
|
|
- MY_GPG_PUBLIC_KEY=/media/usb/public_key.gpg
|
|
346
|
+ MY_GPG_PUBLIC_KEY=$USB_MOUNT/public_key.gpg
|
341
|
347
|
fi
|
342
|
348
|
fi
|
343
|
|
- if [ -d /media/usb/.ssh ]; then
|
|
349
|
+ if [ -d $USB_MOUNT/.ssh ]; then
|
344
|
350
|
echo 'Importing ssh keys'
|
345
|
|
- cp -r /media/usb/.ssh /home/$MY_USERNAME
|
|
351
|
+ cp -r $USB_MOUNT/.ssh /home/$MY_USERNAME
|
346
|
352
|
chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
|
347
|
353
|
# for security delete the ssh keys from the usb drive
|
348
|
354
|
if [ -f /home/$MY_USERNAME/.ssh/id_rsa ]; then
|
349
|
|
- shred -zu /media/usb/.ssh/id_rsa
|
350
|
|
- shred -zu /media/usb/.ssh/id_rsa.pub
|
351
|
|
- shred -zu /media/usb/.ssh/known_hosts
|
352
|
|
- rm -rf /media/usb/.ssh
|
|
355
|
+ shred -zu $USB_MOUNT/.ssh/id_rsa
|
|
356
|
+ shred -zu $USB_MOUNT/.ssh/id_rsa.pub
|
|
357
|
+ shred -zu $USB_MOUNT/.ssh/known_hosts
|
|
358
|
+ rm -rf $USB_MOUNT/.ssh
|
353
|
359
|
else
|
354
|
360
|
echo 'ssh files did not copy'
|
355
|
361
|
exit 8
|
356
|
362
|
fi
|
357
|
363
|
fi
|
358
|
|
- if [ -f /media/usb/.emacs ]; then
|
|
364
|
+ if [ -f $USB_MOUNT/.emacs ]; then
|
359
|
365
|
echo 'Importing .emacs file'
|
360
|
|
- cp -f /media/usb/.emacs /home/$MY_USERNAME/.emacs
|
|
366
|
+ cp -f $USB_MOUNT/.emacs /home/$MY_USERNAME/.emacs
|
361
|
367
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs
|
362
|
368
|
fi
|
363
|
|
- if [ -d /media/usb/.emacs.d ]; then
|
|
369
|
+ if [ -d $USB_MOUNT/.emacs.d ]; then
|
364
|
370
|
echo 'Importing .emacs.d directory'
|
365
|
|
- cp -r /media/usb/.emacs.d /home/$MY_USERNAME
|
|
371
|
+ cp -r $USB_MOUNT/.emacs.d /home/$MY_USERNAME
|
366
|
372
|
chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs.d
|
367
|
373
|
fi
|
368
|
|
- if [ -d /media/usb/personal ]; then
|
|
374
|
+ if [ -d $USB_MOUNT/personal ]; then
|
369
|
375
|
echo 'Importing personal directory'
|
370
|
|
- cp -r /media/usb/personal /home/$MY_USERNAME
|
|
376
|
+ cp -r $USB_MOUNT/personal /home/$MY_USERNAME
|
371
|
377
|
chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/personal
|
372
|
378
|
fi
|
373
|
379
|
else
|
374
|
|
- if [ -d /media/usb ]; then
|
375
|
|
- umount /media/usb
|
376
|
|
- rm -rf /media/usb
|
|
380
|
+ if [ -d $USB_MOUNT ]; then
|
|
381
|
+ umount $USB_MOUNT
|
|
382
|
+ rm -rf $USB_MOUNT
|
377
|
383
|
fi
|
378
|
384
|
echo 'No USB drive attached'
|
379
|
385
|
fi
|
|
@@ -1528,9 +1534,9 @@ function import_email {
|
1528
|
1534
|
if grep -Fxq "import_email" $COMPLETION_FILE; then
|
1529
|
1535
|
if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
|
1530
|
1536
|
echo $EMAIL_COMPLETE_MSG
|
1531
|
|
- if [ -d /media/usb ]; then
|
1532
|
|
- umount /media/usb
|
1533
|
|
- rm -rf /media/usb
|
|
1537
|
+ if [ -d $USB_MOUNT ]; then
|
|
1538
|
+ umount $USB_MOUNT
|
|
1539
|
+ rm -rf $USB_MOUNT
|
1534
|
1540
|
echo ' You can now remove the USB drive'
|
1535
|
1541
|
fi
|
1536
|
1542
|
exit 0
|
|
@@ -1554,9 +1560,9 @@ function import_email {
|
1554
|
1560
|
echo ''
|
1555
|
1561
|
echo $EMAIL_COMPLETE_MSG
|
1556
|
1562
|
echo ''
|
1557
|
|
- if [ -d /media/usb ]; then
|
1558
|
|
- umount /media/usb
|
1559
|
|
- rm -rf /media/usb
|
|
1563
|
+ if [ -d $USB_MOUNT ]; then
|
|
1564
|
+ umount $USB_MOUNT
|
|
1565
|
+ rm -rf $USB_MOUNT
|
1560
|
1566
|
echo ' You can now remove the USB drive'
|
1561
|
1567
|
fi
|
1562
|
1568
|
exit 0
|
|
@@ -1606,9 +1612,9 @@ function install_owncloud {
|
1606
|
1612
|
if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
|
1607
|
1613
|
if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
|
1608
|
1614
|
# unmount any attached usb drive
|
1609
|
|
- if [ -d /media/usb ]; then
|
1610
|
|
- umount /media/usb
|
1611
|
|
- rm -rf /media/usb
|
|
1615
|
+ if [ -d $USB_MOUNT ]; then
|
|
1616
|
+ umount $USB_MOUNT
|
|
1617
|
+ rm -rf $USB_MOUNT
|
1612
|
1618
|
fi
|
1613
|
1619
|
echo ''
|
1614
|
1620
|
echo $OWNCLOUD_COMPLETION_MSG1
|
|
@@ -1778,9 +1784,9 @@ function install_owncloud {
|
1778
|
1784
|
|
1779
|
1785
|
if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
|
1780
|
1786
|
# unmount any attached usb drive
|
1781
|
|
- if [ -d /media/usb ]; then
|
1782
|
|
- umount /media/usb
|
1783
|
|
- rm -rf /media/usb
|
|
1787
|
+ if [ -d $USB_MOUNT ]; then
|
|
1788
|
+ umount $USB_MOUNT
|
|
1789
|
+ rm -rf $USB_MOUNT
|
1784
|
1790
|
fi
|
1785
|
1791
|
echo ''
|
1786
|
1792
|
echo $OWNCLOUD_COMPLETION_MSG1
|
|
@@ -2711,15 +2717,15 @@ function script_for_attaching_usb_drive {
|
2711
|
2717
|
return
|
2712
|
2718
|
fi
|
2713
|
2719
|
echo '#!/bin/bash' > /usr/bin/attach-music
|
2714
|
|
- echo 'if [ -d /var/media ]; then' >> /usr/bin/attach-music
|
2715
|
|
- echo ' umount /var/media' >> /usr/bin/attach-music
|
|
2720
|
+ echo "if [ -d $USB_MOUNT ]; then" >> /usr/bin/attach-music
|
|
2721
|
+ echo " umount $USB_MOUNT" >> /usr/bin/attach-music
|
2716
|
2722
|
echo 'fi' >> /usr/bin/attach-music
|
2717
|
|
- echo 'if [ ! -d /var/media ]; then' >> /usr/bin/attach-music
|
2718
|
|
- echo ' mkdir /var/media' >> /usr/bin/attach-music
|
|
2723
|
+ echo "if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/attach-music
|
|
2724
|
+ echo " mkdir $USB_MOUNT" >> /usr/bin/attach-music
|
2719
|
2725
|
echo 'fi' >> /usr/bin/attach-music
|
2720
|
|
- echo 'mount /dev/sda1 /var/media' >> /usr/bin/attach-music
|
2721
|
|
- echo 'chown root:root /var/media' >> /usr/bin/attach-music
|
2722
|
|
- echo 'chown -R minidlna:minidlna /var/media/*' >> /usr/bin/attach-music
|
|
2726
|
+ echo "mount /dev/sda1 $USB_MOUNT" >> /usr/bin/attach-music
|
|
2727
|
+ echo "chown root:root $USB_MOUNT" >> /usr/bin/attach-music
|
|
2728
|
+ echo "chown -R minidlna:minidlna $USB_MOUNT/*" >> /usr/bin/attach-music
|
2723
|
2729
|
echo 'minidlnad -R' >> /usr/bin/attach-music
|
2724
|
2730
|
chmod +x /usr/bin/attach-music
|
2725
|
2731
|
ln -s /usr/bin/attach-music /usr/bin/attach-usb
|
|
@@ -2728,9 +2734,9 @@ function script_for_attaching_usb_drive {
|
2728
|
2734
|
ln -s /usr/bin/attach-music /usr/bin/attach-media
|
2729
|
2735
|
|
2730
|
2736
|
echo '#!/bin/bash' > /usr/bin/remove-music
|
2731
|
|
- echo 'if [ -d /var/media ]; then' >> /usr/bin/remove-music
|
2732
|
|
- echo ' umount /var/media' >> /usr/bin/remove-music
|
2733
|
|
- echo ' rm -rf /var/media' >> /usr/bin/remove-music
|
|
2737
|
+ echo "if [ -d $USB_MOUNT ]; then" >> /usr/bin/remove-music
|
|
2738
|
+ echo " umount $USB_MOUNT" >> /usr/bin/remove-music
|
|
2739
|
+ echo " rm -rf $USB_MOUNT" >> /usr/bin/remove-music
|
2734
|
2740
|
echo 'fi' >> /usr/bin/remove-music
|
2735
|
2741
|
chmod +x /usr/bin/remove-music
|
2736
|
2742
|
ln -s /usr/bin/remove-music /usr/bin/detach-music
|
|
@@ -2759,16 +2765,16 @@ function install_dlna_server {
|
2759
|
2765
|
echo "media_dir=P,/home/$MY_USERNAME/Pictures" >> /etc/minidlna.conf
|
2760
|
2766
|
fi
|
2761
|
2767
|
if ! grep -q "/home/$MY_USERNAME/Videos" /etc/minidlna.conf; then
|
2762
|
|
- echo "media_dir=V,/home/$MY_USERNAME/Videos" >> /etc/minidlna.conf
|
|
2768
|
+ echo "media_dir=V,/home/$MY_USERNAME/Videos" >> /etc/minidlna.conf
|
2763
|
2769
|
fi
|
2764
|
|
- if ! grep -q "/var/media/Music" /etc/minidlna.conf; then
|
2765
|
|
- echo "media_dir=A,/var/media/Music" >> /etc/minidlna.conf
|
|
2770
|
+ if ! grep -q "$USB_MOUNT/Music" /etc/minidlna.conf; then
|
|
2771
|
+ echo "media_dir=A,$USB_MOUNT/Music" >> /etc/minidlna.conf
|
2766
|
2772
|
fi
|
2767
|
|
- if ! grep -q "/var/media/Pictures" /etc/minidlna.conf; then
|
2768
|
|
- echo "media_dir=P,/var/media/Pictures" >> /etc/minidlna.conf
|
|
2773
|
+ if ! grep -q "$USB_MOUNT/Pictures" /etc/minidlna.conf; then
|
|
2774
|
+ echo "media_dir=P,$USB_MOUNT/Pictures" >> /etc/minidlna.conf
|
2769
|
2775
|
fi
|
2770
|
|
- if ! grep -q "/var/media/Videos" /etc/minidlna.conf; then
|
2771
|
|
- echo "media_dir=V,/var/media/Videos" >> /etc/minidlna.conf
|
|
2776
|
+ if ! grep -q "$USB_MOUNT/Videos" /etc/minidlna.conf; then
|
|
2777
|
+ echo "media_dir=V,$USB_MOUNT/Videos" >> /etc/minidlna.conf
|
2772
|
2778
|
fi
|
2773
|
2779
|
sed -i 's/#root_container=./root_container=B/g' /etc/minidlna.conf
|
2774
|
2780
|
sed -i 's/#network_interface=/network_interface=eth0/g' /etc/minidlna.conf
|
|
@@ -2981,14 +2987,46 @@ function install_mediagoblin {
|
2981
|
2987
|
echo 'install_mediagoblin' >> $COMPLETION_FILE
|
2982
|
2988
|
}
|
2983
|
2989
|
|
|
2990
|
+function create_backup_script {
|
|
2991
|
+ if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
|
|
2992
|
+ return
|
|
2993
|
+ fi
|
|
2994
|
+ apt-get -y --force-yes install obnam
|
|
2995
|
+ echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
|
|
2996
|
+ echo "if [ -b $USB_DRIVE ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
2997
|
+ echo " if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
2998
|
+ echo " mkdir $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
2999
|
+ echo " mount $USB_DRIVE $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3000
|
+ echo ' fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3001
|
+ echo " if [ ! -d $USB_MOUNT/backup ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3002
|
+ echo " mkdir $USB_MOUNT/backup" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3003
|
+ echo ' fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3004
|
+ # email
|
|
3005
|
+ if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
|
|
3006
|
+ echo " if [ ! -d $USB_MOUNT/backup/Maildir ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3007
|
+ echo " mkdir $USB_MOUNT/backup/Maildir" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3008
|
+ echo ' fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3009
|
+ echo " obnam -r $USB_MOUNT/backup/Maildir /home/$MY_USERNAME/Maildir /home/$MY_USERNAME/.gnupg /home/$MY_USERNAME/.muttrc /home/$MY_USERNAME/.procmailrc" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3010
|
+ fi
|
|
3011
|
+
|
|
3012
|
+ echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3013
|
+ echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3014
|
+ echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3015
|
+ echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3016
|
+ echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3017
|
+ chmod +x /usr/bin/$BACKUP_SCRIPT_NAME
|
|
3018
|
+
|
|
3019
|
+ echo 'create_backup_script' >> $COMPLETION_FILE
|
|
3020
|
+}
|
|
3021
|
+
|
2984
|
3022
|
function install_final {
|
2985
|
3023
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
2986
|
3024
|
return
|
2987
|
3025
|
fi
|
2988
|
3026
|
# unmount any attached usb drive
|
2989
|
|
- if [ -d /media/usb ]; then
|
2990
|
|
- umount /media/usb
|
2991
|
|
- rm -rf /media/usb
|
|
3027
|
+ if [ -d $USB_MOUNT ]; then
|
|
3028
|
+ umount $USB_MOUNT
|
|
3029
|
+ rm -rf $USB_MOUNT
|
2992
|
3030
|
fi
|
2993
|
3031
|
apt-get -y --force-yes autoremove
|
2994
|
3032
|
echo 'install_final' >> $COMPLETION_FILE
|