From 2f2b32e3476cba9899b2b0b3791fc89549a3cf06 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Thu, 28 Jul 2016 18:51:11 +0100
Subject: [PATCH] Abstract tomb creation

---
 src/freedombone-image-mesh | 65 +++++++++++++++++++++-----------------
 1 file changed, 36 insertions(+), 29 deletions(-)

diff --git a/src/freedombone-image-mesh b/src/freedombone-image-mesh
index 2b299b7c6..bc1dfe259 100755
--- a/src/freedombone-image-mesh
+++ b/src/freedombone-image-mesh
@@ -54,6 +54,7 @@ MESH_AMNESIC=/root/.amnesic
 
 # size of the tomb used to store qtox settings
 TOMB_TOX_SIZE_MB=64
+TOMB_ZERONET_SIZE_MB=64
 
 function create_ram_disk {
 	ramdisk_size_mb=$1
@@ -580,46 +581,52 @@ function mesh_restart_daemons {
 	echo $'Daemons restarted' >> $INSTALL_LOG
 }
 
-function setup_amnesic_tox_data {
-	if [ ! -f $MESH_AMNESIC ]; then
-		return
-	fi
-	if [ ! -d /mnt/ramdisk ]; then
-		return
-	fi
+function create_tomb {
+	tomb_name=$1
+	tomb_size=$2
 
-	# close any existing open tomb
-	if [ -f /tmp/tox.tomb ]; then
-		tomb slam /tmp/tox.tomb
+	if [ -f /tmp/${tomb_name}.tomb ]; then
+		tomb slam /tmp/${tomb_name}.tomb
 	fi
 
 	# make a temporary password
-	tomb dig -s $TOMB_TOX_SIZE_MB /tmp/tox.tomb
-	if [ ! -f /tmp/tox.tomb ]; then
-		echo "WARNING: Tomb did not install properly" >> /var/log/${PROJECT_NAME}.log
+	tomb dig -s ${tomb_size} /tmp/${tomb_name}.tomb
+	if [ ! -f /tmp/${tomb_name}.tomb ]; then
+		echo "WARNING: ${tomb_name} tomb did not install properly" >> /var/log/${PROJECT_NAME}.log
 		tomb >> /var/log/${PROJECT_NAME}.log
 	fi
-	TOMB_TOX_PASSWORD="$(openssl rand -base64 32 | cut -c1-30)"
-	tomb forge /mnt/ramdisk/tox.tomb.key --tomb-pwd "${TOMB_TOX_PASSWORD}" --unsafe
-	tomb lock /tmp/tox.tomb -k /mnt/ramdisk/tox.tomb.key --tomb-pwd "${TOMB_TOX_PASSWORD}" --unsafe
-	tomb open /tmp/tox.tomb -k /mnt/ramdisk/tox.tomb.key --tomb-pwd "${TOMB_TOX_PASSWORD}" --unsafe
+	TOMB_TEMP_PASSWORD="$(openssl rand -base64 32 | cut -c1-30)"
+	tomb forge /mnt/ramdisk/${tomb_name}.tomb.key --tomb-pwd "${TOMB_TEMP_PASSWORD}" --unsafe
+	tomb lock /tmp/${tomb_name}.tomb -k /mnt/ramdisk/${tomb_name}.tomb.key --tomb-pwd "${TOMB_TEMP_PASSWORD}" --unsafe
+	tomb open /tmp/${tomb_name}.tomb -k /mnt/ramdisk/${tomb_name}.tomb.key --tomb-pwd "${TOMB_TEMP_PASSWORD}" --unsafe
 	# clear the temporary password
-	TOMB_TOX_PASSWORD=
+	TOMB_TEMP_PASSWORD=
 
-	if [ -d /media/tox ]; then
-		if [ ! -d /home/$MY_USERNAME/.config ]; then
-			mkdir -p /home/$MY_USERNAME/.config
+	if [ -d /media/${tomb_name} ]; then
+		if [ ! -d /home/${MY_USERNAME}/.config ]; then
+			mkdir -p /home/${MY_USERNAME}/.config
 		fi
-		if [ -d /home/$MY_USERNAME/.config/tox ]; then
-			rm -rf /home/$MY_USERNAME/.config/tox
+		if [ -d /home/${MY_USERNAME}/.config/${tomb_name} ]; then
+			rm -rf /home/${MY_USERNAME}/.config/${tomb_name}
 		fi
-		ln -s /media/tox /home/$MY_USERNAME/.config/tox
-		chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
-		chown -R $MY_USERNAME:$MY_USERNAME /media/tox
-		echo "Tox Tomb created" >> /var/log/${PROJECT_NAME}.log
+		ln -s /media/${tomb_name} /home/${MY_USERNAME}/.config/${tomb_name}
+		chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
+		chown -R ${MY_USERNAME}:${MY_USERNAME} /media/${tomb_name}
+		echo "${tomb_name} tomb created" >> /var/log/${PROJECT_NAME}.log
 	else
-		echo "WARNING: Tox Tomb not found" >> /var/log/${PROJECT_NAME}.log
+		echo "WARNING: ${tomb_name} tomb not found" >> /var/log/${PROJECT_NAME}.log
+	fi
+}
+
+function setup_amnesic_data {
+	if [ ! -f $MESH_AMNESIC ]; then
+		return
 	fi
+	if [ ! -d /mnt/ramdisk ]; then
+		return
+	fi
+
+	create_tomb tox $TOMB_TOX_SIZE_MB
 }
 
 # whether to reset the identity
@@ -667,7 +674,7 @@ if [ -f $MESH_INSTALL_SETUP ]; then
 	configure_zeronet_mail
 	configure_zeronet_forum
 	configure_zeronet_id
-	setup_amnesic_tox_data
+	setup_amnesic_data
 	configure_toxcore
 	configure_zeronet
 	disable_password_logins
-- 
GitLab