#!/bin/bash
#
# RunSetup Selector
#
# This script allow the shifter to select from a predefined list of run-setups.
#
# Author: Carmelo Pellegrino <carmelo.pellegrino@bo.infn.it>
#

function createList() {
  local LIST
  local file

  for file in *.detectorfile; do
    LIST=(${LIST[*]} "FALSE" ${file})
  done
  unset file

  echo ${LIST[*]}
}

function dm_driver() {
  echo "set session target = run"

  sleep $1

  echo exit
  echo y
}

function log() {
  [ ! -d ~/.km3_private ] && mkdir -p ~/.km3_private
  local logfile="~/.km3_private/auto_ss.log"
  date      >>${logfile}
  echo ${*} >>${logfile}
}

function now() {
  # print the number of seconds elapsed since Jan 1 1970 00:00 in UTC
  date -u +%s
}

function get_run_number() {
  [ ! -d ~/.km3_private ] && mkdir -p ~/.km3_private
  [ ! -e ~/.km3_private/last_run_number ] && echo 0 >~/.km3_private/last_run_number
  local last_run_number=`cat ~/.km3_private/last_run_number`
  local run_number

  let "run_number = ${last_run_number} + 1"

  echo ${run_number} > ~/.km3_private/last_run_number
  echo ${run_number}
}

# Ask for the run setup

rs_file=`zenity --title "Run Setup Selector" \
                 --list \
                 --text "Select one of the following Run Setups:" \
                 --radiolist \
                 --column="Selection" \
                 --column="Run Setup file" \
                 $(createList ${folder})`

if [ -z "${rs_file}" ]; then
  zenity --error  --text="No Run Setup file selectet, aborting"
  exit -1
fi

# Peak the run number

run_number=`get_run_number`

# Copy selected run setup file, changing the run number

# Ask for run duration

run_duration=`zenity --title "Run duration" \
                     --list \
                     --text "Select one of the following duration:" \
                     --radiolist \
                     --column="Selection" \
                     --column="Minutes" \
                     FALSE 5 TRUE 10 FALSE 20`

# Launch the DM
dm_driver ${run_duration} | mono DetectorControl.exe --control --reset &

# Launch the DAQ
DAQ.sh

# Point the browser to the correct address, if required
zenity --question \
       --text="Would you like to open the DetectorManager GUI?" \
       --cancel-label="No, thanks" && firefox http://localhost:1301/
