From ca933aad5a436c4fb8059a24310ee92205fca6dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Manh=C3=A3es?= <gabrielmanhaes@tecgraf.puc-rio.br>
Date: Tue, 24 Mar 2020 14:07:31 -0300
Subject: [PATCH] =?UTF-8?q?Receber=20par=C3=A2metro=20--sga-name=20no=20sg?=
 =?UTF-8?q?ad.sh=20[SOMA-3827][SOMA-4070]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 sgad    |  2 +-
 sgad.sh | 33 ++++++++++++++++++++++++---------
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/sgad b/sgad
index 961f89a..56f6d2d 100755
--- a/sgad
+++ b/sgad
@@ -20,7 +20,7 @@ local function script_path()
    return str:match("(.*)/") or "."
 end
 
-local config, err = configuration.read(args[1] or os.getenv("SGAD_CONFIG_FILE") or script_path().."/sgad.cfg")
+local config, err = configuration.read(args[1] or os.getenv("SGAD_CONFIG_FILE") or script_path().."/sgad.cfg", args[2])
 if not config then
    io.stderr:write(err.."\n")
    os.exit(1)
diff --git a/sgad.sh b/sgad.sh
index 2e381c3..4f5180f 100755
--- a/sgad.sh
+++ b/sgad.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 timestamp=$(date +%Y%m%d%H%M%S)
 logsdir="logs"
@@ -6,13 +6,6 @@ logsdir="logs"
 [ ! -e $logsdir ] && echo "mkdir $logsdir" && mkdir $logsdir
 
 logfile="logs/sgad_${timestamp}.log"
-
-configfile=${1}
-if [ -z ${configfile} ]; then
-   echo "Using default file configuration" > ${logfile};
-   configfile=sgad.cfg
-fi
-
 hostruntimedir="/tmp/chuva"
 sgadruntimedir="${hostruntimedir}/sgad"
 runtimesandboxdir="${sgadruntimedir}/sandbox"
@@ -21,6 +14,28 @@ runtimesandboxdir="${sgadruntimedir}/sandbox"
 [ ! -e $sgadruntimedir ] && echo "mkdir $sgadruntimedir..." && mkdir $sgadruntimedir
 [ ! -e $runtimesandboxdir ] && echo "mkdir $runtimesandboxdir..." && mkdir $runtimesandboxdir
 
+POSITIONAL=() # Array para salvar argumentos passados ao comando
+while [[ $# -gt 0 ]] # Percorre todos argumentos
+do
+	case "$1" in
+		--sga-name)
+			sga_name=$2
+			shift
+			shift
+			;;
+		*)
+			POSITIONAL+=("$1")
+			shift
+			;;
+	esac
+done
+set -- "${POSITIONAL[@]}" # Reseta a posição do $N que foi shiftada
+config_file=$1 # Como shiftamos todos os argumentos para a direita, nosso $1 sempre vai ser o argumento config_file, se ele existir
+if [ -z ${config_file} ]; then
+   echo "Using default file configuration" > ${logfile};
+   config_file=sgad.cfg
+fi
+
 eval $(luarocks path --bin)
-sgad ${configfile} 2>&1 | tee -a "${logfile}"
+sgad ${config_file} ${sga_name} 2>&1 | tee -a "${logfile}"
 
-- 
GitLab