From 44ad7ff678e4b38b2f66e0409bd3acc7eb007fca Mon Sep 17 00:00:00 2001 From: Bob Mottram <bob@robotics.uk.to> Date: Sun, 7 Aug 2016 20:26:46 +0100 Subject: [PATCH] Set username on first boot of mesh client --- src/freedombone-image-customise | 30 ++++++++++++++++++++++++++++++ src/freedombone-image-mesh | 5 +++++ 2 files changed, 35 insertions(+) diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise index f750f51c7..af1413b41 100755 --- a/src/freedombone-image-customise +++ b/src/freedombone-image-customise @@ -577,6 +577,7 @@ function mesh_client_startup_applications { fi START_DESKTOP=$rootdir/home/$MY_USERNAME/mesh-desktop.sh + FIRST_BOOT=/home/$MY_USERNAME/.first_boot echo '#!/bin/bash' > $START_DESKTOP echo 'dconf write /org/mate/caja/desktop/volumes-visible false' >> $START_DESKTOP echo 'dconf write /org/mate/caja/desktop/computer-icon-visible false' >> $START_DESKTOP @@ -590,6 +591,35 @@ function mesh_client_startup_applications { echo "chmod 600 /home/$MY_USERNAME/.dbus/Xdbus" >> $START_DESKTOP echo "env | grep DBUS_SESSION_BUS_ADDRESS > /home/$MY_USERNAME/.dbus/Xdbus" >> $START_DESKTOP echo "echo 'export DBUS_SESSION_BUS_ADDRESS' >> /home/$MY_USERNAME/.dbus/Xdbus" >> $START_DESKTOP + + echo '' >> $START_DESKTOP + echo "if [ ! -f $FIRST_BOOT ]; then" >> $START_DESKTOP + echo ' exit 0' >> $START_DESKTOP + echo 'fi' >> $START_DESKTOP + echo '' >> $START_DESKTOP + echo 'INITIAL_TOX_USERNAME=' >> $START_DESKTOP + echo 'while [ ! $INITIAL_TOX_USERNAME ]; do' >> $START_DESKTOP + echo ' data=$(tempfile 2>/dev/null)' >> $START_DESKTOP + echo ' trap "rm -f $data" 0 1 2 5 15' >> $START_DESKTOP + echo ' dialog --title $"Freedombone Mesh" \' >> $START_DESKTOP + echo ' --backtitle $"Freedombone Mesh" \' >> $START_DESKTOP + echo ' --inputbox $"\nWelcome to the Freedombone mesh.\n\nThe first thing you will need to do is set a username so that other peers can find you." 12 60 "Anon" 2>$data' >> $START_DESKTOP + echo ' sel=$?' >> $START_DESKTOP + echo ' case $sel in' >> $START_DESKTOP + echo ' 0)' >> $START_DESKTOP + echo ' INITIAL_TOX_USERNAME=$(<$data)' >> $START_DESKTOP + echo ' if [ ${#INITIAL_TOX_USERNAME} -lt 1 ]; then' >> $START_DESKTOP + echo ' INITIAL_TOX_USERNAME=' >> $START_DESKTOP + echo ' fi' >> $START_DESKTOP + echo ' ;;' >> $START_DESKTOP + echo ' esac' >> $START_DESKTOP + echo 'done' >> $START_DESKTOP + echo '' >> $START_DESKTOP + echo 'toxid --setuser "$INITIAL_TOX_USERNAME"' >> $START_DESKTOP + echo '' >> $START_DESKTOP + echo "rm -f $FIRST_BOOT" >> $START_DESKTOP + echo '' >> $START_DESKTOP + echo 'exit 0' >> $START_DESKTOP chmod +x $START_DESKTOP START_DESKTOP2=$rootdir/home/$MY_USERNAME/.config/autostart/mesh-start.desktop diff --git a/src/freedombone-image-mesh b/src/freedombone-image-mesh index 26ba04cd4..545dd298d 100755 --- a/src/freedombone-image-mesh +++ b/src/freedombone-image-mesh @@ -54,6 +54,7 @@ MESH_INSTALL_DIR=/var/lib MESH_INSTALL_COMPLETED=/root/.mesh_setup_completed MESH_INSTALL_SETUP=/root/.initial_mesh_setup MESH_AMNESIC=/root/.amnesic +FIRST_BOOT=/home/$MY_USERNAME/.first_boot # Tomb containing logs TOMB_LOG_SIZE_MB=10 @@ -820,6 +821,10 @@ if [ -f $MESH_INSTALL_SETUP ]; then if [ ! -f $MESH_INSTALL_COMPLETED ]; then echo $'Mesh node setup complete' >> $INSTALL_LOG touch $MESH_INSTALL_COMPLETED + if [ -d /home/$MY_USERNAME/Desktop ]; then + touch $FIRST_BOOT + chown ${MY_USERNAME}:${MY_USERNAME} $FIRST_BOOT + fi reboot fi fi -- GitLab