From feafd16269ab941fed8a45eefd7421bd2763e332 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Thu, 19 Oct 2017 12:46:42 +0200 Subject: [PATCH] Add handling of --path to headless detection --- .../scripts/generic/ArchiSteamFarm-Service.sh | 11 ++++++++++- ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh | 11 ++++++++++- run.sh | 16 +++++++++++++--- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh index 46edb36eb..c36568765 100755 --- a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh +++ b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh @@ -1,5 +1,8 @@ #!/bin/bash set -eu + +CONFIG_PATH="config/ASF.json" + cd "$(dirname "$(readlink -f "$0")")" if [[ -z "${ASF_ARGS-}" ]]; then @@ -8,11 +11,17 @@ fi ASF_ARGS+=" $*" +for ARG in $ASF_ARGS; do + case "$ARG" in + --path=*) CONFIG_PATH="$(echo "$ARG" | cut -d '=' -f 2-)/${CONFIG_PATH}" ;; + esac +done + # Kill underlying ASF process on shell process exit trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM while :; do - if grep -Eq '"Headless":\s+?true' 'config/ASF.json'; then + if [[ -f "$CONFIG_PATH" ]] && grep -Eq '"Headless":\s+?true' "$CONFIG_PATH"; then # We're running ASF in headless mode so we don't need STDIN dotnet ArchiSteamFarm.dll $ASF_ARGS & # Start ASF in the background, trap will work properly due to non-blocking call wait $! # This will forward dotnet error code, set -e will abort the script if it's non-zero diff --git a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh index 190b3ef06..19a36e719 100755 --- a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh +++ b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh @@ -1,5 +1,8 @@ #!/bin/bash set -eu + +CONFIG_PATH="config/ASF.json" + cd "$(dirname "$(readlink -f "$0")")" if [[ -z "${ASF_ARGS-}" ]]; then @@ -8,10 +11,16 @@ fi ASF_ARGS+=" $*" +for ARG in $ASF_ARGS; do + case "$ARG" in + --path=*) CONFIG_PATH="$(echo "$ARG" | cut -d '=' -f 2-)/${CONFIG_PATH}" ;; + esac +done + # Kill underlying ASF process on shell process exit trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM -if grep -Eq '"Headless":\s+?true' 'config/ASF.json'; then +if [[ -f "$CONFIG_PATH" ]] && grep -Eq '"Headless":\s+?true' "$CONFIG_PATH"; then # We're running ASF in headless mode so we don't need STDIN dotnet ArchiSteamFarm.dll $ASF_ARGS & # Start ASF in the background, trap will work properly due to non-blocking call wait $! # This will forward dotnet error code, set -e will abort the script if it's non-zero diff --git a/run.sh b/run.sh index 97ee64164..d540368dc 100755 --- a/run.sh +++ b/run.sh @@ -4,6 +4,8 @@ set -eu PROJECT="ArchiSteamFarm" OUT="out/source" +CONFIG_PATH="config/ASF.json" + cd "$(dirname "$(readlink -f "$0")")" if [[ -z "${ASF_ARGS-}" ]]; then @@ -12,6 +14,12 @@ fi ASF_ARGS+=" $*" +for ARG in $ASF_ARGS; do + case "$ARG" in + --path=*) CONFIG_PATH="$(echo "$ARG" | cut -d '=' -f 2-)/${CONFIG_PATH}" ;; + esac +done + # Kill underlying ASF process on shell process exit trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM @@ -22,11 +30,13 @@ fi dotnet --info -if grep -Eq '"Headless":\s+?true' "${PROJECT}/${OUT}/config/ASF.json"; then +cd "${PROJECT}/${OUT}" + +if [[ -f "$CONFIG_PATH" ]] && grep -Eq '"Headless":\s+?true' "$CONFIG_PATH"; then # We're running ASF in headless mode so we don't need STDIN - dotnet exec "${PROJECT}/${OUT}/${PROJECT}.dll" $ASF_ARGS & # Start ASF in the background, trap will work properly due to non-blocking call + dotnet exec "${PROJECT}.dll" $ASF_ARGS & # Start ASF in the background, trap will work properly due to non-blocking call wait $! # This will forward dotnet error code, set -e will abort the script if it's non-zero else # We're running ASF in non-headless mode, so we need STDIN to be operative - dotnet exec "${PROJECT}/${OUT}/${PROJECT}.dll" $ASF_ARGS # Start ASF in the foreground, trap won't work until process exit + dotnet exec "${PROJECT}.dll" $ASF_ARGS # Start ASF in the foreground, trap won't work until process exit fi