From 1c375f01b22e828a4180ad9d99ff6f46256b7f09 Mon Sep 17 00:00:00 2001
From: Stephanie <sba16>
Date: Wed, 20 Dec 2017 11:28:58 -0200
Subject: [PATCH] SCRUM#358: Create seat configuration correctly and move only
 if you get to the end of the script

---
 opt/le-multiterminal/find-devices.sh         | 21 ++++++++++++--------
 opt/le-multiterminal/multiseat-controller.sh | 18 +++++++++++------
 2 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/opt/le-multiterminal/find-devices.sh b/opt/le-multiterminal/find-devices.sh
index 32f2f6d..d11e530 100755
--- a/opt/le-multiterminal/find-devices.sh
+++ b/opt/le-multiterminal/find-devices.sh
@@ -1,10 +1,15 @@
 #!/bin/bash
 
-## Script/function constants
-READ_DEVICES=read-devices
-DETECT_KEYBOARDS=detect-keyboard.sh
-WRITE_W=write_window
-DEVICES=devices
+## Macros
+DEVICES="/opt/le-multiterminal/devices" # shortcut to devices that have already been paired
+CONF="/opt/le-multiterminal/98-xephyr-multi-seat.conf" # lightdm settings file (associates seat to output)
+
+## Script/function in other file
+READ_DEVICES="read-devices"
+DETECT_KEYBOARDS="/opt/le-multiterminal/detect-keyboard.sh"
+WRITE_W="write_window" # "window-acess.sh"
+
+## Variables 
 declare -a SEATS_LISTED # save the name of the existing seats
 
 
@@ -70,13 +75,13 @@ find_keyboard () {
 
 		# Write in configuration file
 		if [[ $fKey -gt 1 ]]; then
-			echo -e "[Seat:$SEAT_NAME]\nxserver-command=xephyr-wrapper :90.0 -output ${OUTPUTS[$((wNum-1))]}\n" >> configuracao
+			echo -e "[Seat:$SEAT_NAME]\nxserver-command=xephyr-wrapper :90.0 -output ${OUTPUTS[$((wNum-1))]}\n" >> $CONF
 		fi
 
-		exit 1
+		exit 0
 	else
 		echo "CAN NOT FIND KEYBOARD"
 
-		exit 0
+		exit 1
 	fi
 }
\ No newline at end of file
diff --git a/opt/le-multiterminal/multiseat-controller.sh b/opt/le-multiterminal/multiseat-controller.sh
index 180c105..3463a00 100755
--- a/opt/le-multiterminal/multiseat-controller.sh
+++ b/opt/le-multiterminal/multiseat-controller.sh
@@ -34,12 +34,11 @@ source /opt/le-multiterminal/find-devices.sh
 source /opt/le-multiterminal/window-acess.sh
 
 ## Path constants
-MC3SL_SCRIPTS=$(pwd) #/usr/sbin/ 
-MC3SL_DEVICES=devices #/etc/mc3sl/devices/ 
-MC3SL_LOGS=$(pwd) #/etc/mc3sl/logs/ 
+MC3SL_DEVICES="/opt/le-multiterminal/devices" # shortcut to devices that have already been paired
+MC3SL_CONF="/opt/le-multiterminal/98-xephyr-multi-seat.conf" # lightdm settings file (associates seat to output)
+LIGHTDM_CONF="/etc/xdg/lightdm/lightdm.conf.d/98-xephyr-multi-seat.conf"
 
-## Script/function in other file 
-DISCOVER_DEVICES="$MC3SL_SCRIPTS/discover-devices"
+## Script/function in other file
 FIND_KEYBOARD="find_keyboard" # "find-devices.sh"
 CREATE_WINDOW="create_window" # "window-acess.sh"
 WRITE_WINDOW="write_window" # "window-acess.sh"
@@ -182,9 +181,16 @@ N_SEATS_LISTED=$(($(loginctl list-seats | grep -c "seat-")+$ONBOARD))
 CONFIGURED_SEATS=0
 while [[ $CONFIGURED_SEATS -lt $N_SEATS_LISTED ]]; do
     wait -n ${PID_FIND_DEVICES[*]}
-    CONFIGURED_SEATS=$(($CONFIGURED_SEATS+1))
+    EXIT_CODE=$?
+    
+    if [[ $EXIT_CODE -eq 0 ]]; then
+		CONFIGURED_SEATS=$(($CONFIGURED_SEATS+1))
+	fi
 done
 
+# Move settings file created for lightdm folder
+mv -f $MC3SL_CONF $LIGHTDM_CONF
+
 # Cleans the system by killing all the processes and files it has created
 kill_jobs
 
-- 
GitLab