This commit is contained in:
Łukasz Domeradzki
2023-02-26 10:59:48 +01:00
committed by GitHub
parent 402867a025
commit c89366b0a6
9 changed files with 47 additions and 48 deletions

View File

@@ -263,7 +263,26 @@ internal static class Program {
return false;
}
// Parse args
// Parse ASF_ARGS
try {
string[]? asfArgs = Environment.GetEnvironmentVariable(SharedInfo.EnvironmentVariableArguments)?.Split(Array.Empty<char>(), StringSplitOptions.RemoveEmptyEntries);
if (asfArgs?.Length > 0) {
if (!await ParseArgs(asfArgs).ConfigureAwait(false)) {
await Task.Delay(SharedInfo.InformationDelay).ConfigureAwait(false);
return false;
}
}
} catch (Exception e) {
ASF.ArchiLogger.LogGenericException(e);
await Task.Delay(SharedInfo.InformationDelay).ConfigureAwait(false);
return false;
}
// Parse cmdline args
if (args?.Count > 0) {
if (!await ParseArgs(args).ConfigureAwait(false)) {
await Task.Delay(SharedInfo.InformationDelay).ConfigureAwait(false);

View File

@@ -40,6 +40,7 @@ public static class SharedInfo {
internal const string AssemblyName = nameof(ArchiSteamFarm);
internal const string DatabaseExtension = ".db";
internal const string DebugDirectory = "debug";
internal const string EnvironmentVariableArguments = $"{ASF}_ARGS";
internal const string EnvironmentVariableCryptKey = $"{ASF}_CRYPTKEY";
internal const string EnvironmentVariableCryptKeyFile = $"{EnvironmentVariableCryptKey}_FILE";
internal const string EnvironmentVariableNetworkGroup = $"{ASF}_NETWORK_GROUP";

View File

@@ -21,13 +21,10 @@ fi
cd "$SCRIPT_DIR"
BINARY_ARGS=""
PATH_NEXT=0
SERVICE=0
PARSE_ARG() {
BINARY_ARGS="$BINARY_ARGS $1"
case "$1" in
--path) PATH_NEXT=1 ;;
--path=*)
@@ -84,9 +81,9 @@ while :; do
# We're running ASF in headless mode so we don't need STDIN
# Start ASF in the background, trap will work properly due to non-blocking call
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "$BINARY $BINARY_ARGS" &
$BINARY_PREFIX "$BINARY $*" &
else
"$BINARY" $BINARY_ARGS &
"$BINARY" "$@" &
fi
# This will forward dotnet error code, set -e will abort the script if it's non-zero
@@ -95,9 +92,9 @@ while :; do
# We're running ASF in non-headless mode, so we need STDIN to be operative
# Start ASF in the foreground, trap won't work until process exit
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "$BINARY $BINARY_ARGS"
$BINARY_PREFIX "$BINARY $*"
else
"$BINARY" $BINARY_ARGS
"$BINARY" "$@"
fi
fi

View File

@@ -21,13 +21,10 @@ fi
cd "$SCRIPT_DIR"
BINARY_ARGS=""
PATH_NEXT=0
SERVICE=0
PARSE_ARG() {
BINARY_ARGS="$BINARY_ARGS $1"
case "$1" in
--path) PATH_NEXT=1 ;;
--path=*)
@@ -73,11 +70,11 @@ trap "trap - TERM && kill -- -$$" INT TERM
while :; do
if [ "$SERVICE" -eq 1 ] || ([ -f "$CONFIG_PATH" ] && grep -Eq '"Headless":\s+?true' "$CONFIG_PATH"); then
# We're running ASF in headless mode so we don't need STDIN
"$BINARY" $BINARY_ARGS & # Start ASF in the background, trap will work properly due to non-blocking call
"$BINARY" "$@" & # 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
"$BINARY" $BINARY_ARGS # Start ASF in the foreground, trap sadly won't work until process exit
"$BINARY" "$@" # Start ASF in the foreground, trap sadly won't work until process exit
fi
sleep 1

View File

@@ -21,13 +21,10 @@ fi
cd "$SCRIPT_DIR"
BINARY_ARGS=""
PATH_NEXT=0
SERVICE=0
PARSE_ARG() {
BINARY_ARGS="$BINARY_ARGS $1"
case "$1" in
--path) PATH_NEXT=1 ;;
--path=*)
@@ -90,9 +87,9 @@ if [ "$SERVICE" -eq 1 ] || ([ -f "$CONFIG_PATH" ] && grep -Eq '"Headless":\s+?tr
# We're running ASF in headless mode so we don't need STDIN
# Start ASF in the background, trap will work properly due to non-blocking call
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $BINARY_ARGS" &
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $*" &
else
dotnet ${DOTNET_ARGS-} "$BINARY" $BINARY_ARGS &
dotnet ${DOTNET_ARGS-} "$BINARY" "$@" &
fi
# This will forward dotnet error code, set -e will abort the script if it's non-zero
@@ -101,8 +98,8 @@ else
# We're running ASF in non-headless mode, so we need STDIN to be operative
# Start ASF in the foreground, trap won't work until process exit
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $BINARY_ARGS"
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $*"
else
dotnet ${DOTNET_ARGS-} "$BINARY" $BINARY_ARGS
dotnet ${DOTNET_ARGS-} "$BINARY" "$@"
fi
fi

View File

@@ -21,13 +21,10 @@ fi
cd "$SCRIPT_DIR"
BINARY_ARGS=""
PATH_NEXT=0
SERVICE=0
PARSE_ARG() {
BINARY_ARGS="$BINARY_ARGS $1"
case "$1" in
--path) PATH_NEXT=1 ;;
--path=*)
@@ -91,9 +88,9 @@ while :; do
# We're running ASF in headless mode so we don't need STDIN
# Start ASF in the background, trap will work properly due to non-blocking call
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $BINARY_ARGS" &
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $*" &
else
mono ${MONO_ARGS-} "$BINARY" $BINARY_ARGS &
mono ${MONO_ARGS-} "$BINARY" "$@" &
fi
# This will forward mono error code, set -e will abort the script if it's non-zero
@@ -102,9 +99,9 @@ while :; do
# We're running ASF in non-headless mode, so we need STDIN to be operative
# Start ASF in the foreground, trap won't work until process exit
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $BINARY_ARGS"
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $*"
else
mono ${MONO_ARGS-} "$BINARY" $BINARY_ARGS
mono ${MONO_ARGS-} "$BINARY" "$@"
fi
fi

View File

@@ -21,13 +21,10 @@ fi
cd "$SCRIPT_DIR"
BINARY_ARGS=""
PATH_NEXT=0
SERVICE=0
PARSE_ARG() {
BINARY_ARGS="$BINARY_ARGS $1"
case "$1" in
--path) PATH_NEXT=1 ;;
--path=*)
@@ -90,9 +87,9 @@ if [ "$SERVICE" -eq 1 ] || ([ -f "$CONFIG_PATH" ] && grep -Eq '"Headless":\s+?tr
# We're running ASF in headless mode so we don't need STDIN
# Start ASF in the background, trap will work properly due to non-blocking call
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $BINARY_ARGS" &
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $*" &
else
mono ${MONO_ARGS-} "$BINARY" $BINARY_ARGS &
mono ${MONO_ARGS-} "$BINARY" "$@" &
fi
# This will forward mono error code, set -e will abort the script if it's non-zero
@@ -101,8 +98,8 @@ else
# We're running ASF in non-headless mode, so we need STDIN to be operative
# Start ASF in the foreground, trap won't work until process exit
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $BINARY_ARGS"
$BINARY_PREFIX "mono ${MONO_ARGS-} $BINARY $*"
else
mono ${MONO_ARGS-} "$BINARY" $BINARY_ARGS
mono ${MONO_ARGS-} "$BINARY" "$@"
fi
fi

View File

@@ -21,13 +21,10 @@ fi
cd "$SCRIPT_DIR"
BINARY_ARGS=""
PATH_NEXT=0
SERVICE=0
PARSE_ARG() {
BINARY_ARGS="$BINARY_ARGS $1"
case "$1" in
--path) PATH_NEXT=1 ;;
--path=*)
@@ -91,9 +88,9 @@ while :; do
# We're running ASF in headless mode so we don't need STDIN
# Start ASF in the background, trap will work properly due to non-blocking call
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $BINARY_ARGS" &
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $*" &
else
dotnet ${DOTNET_ARGS-} "$BINARY" $BINARY_ARGS &
dotnet ${DOTNET_ARGS-} "$BINARY" "$@" &
fi
# This will forward dotnet error code, set -e will abort the script if it's non-zero
@@ -102,9 +99,9 @@ while :; do
# We're running ASF in non-headless mode, so we need STDIN to be operative
# Start ASF in the foreground, trap won't work until process exit
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $BINARY_ARGS"
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $*"
else
dotnet ${DOTNET_ARGS-} "$BINARY" $BINARY_ARGS
dotnet ${DOTNET_ARGS-} "$BINARY" "$@"
fi
fi

View File

@@ -21,13 +21,10 @@ fi
cd "$SCRIPT_DIR"
BINARY_ARGS=""
PATH_NEXT=0
SERVICE=0
PARSE_ARG() {
BINARY_ARGS="$BINARY_ARGS $1"
case "$1" in
--path) PATH_NEXT=1 ;;
--path=*)
@@ -90,9 +87,9 @@ if [ "$SERVICE" -eq 1 ] || ([ -f "$CONFIG_PATH" ] && grep -Eq '"Headless":\s+?tr
# We're running ASF in headless mode so we don't need STDIN
# Start ASF in the background, trap will work properly due to non-blocking call
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $BINARY_ARGS" &
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $*" &
else
dotnet ${DOTNET_ARGS-} "$BINARY" $BINARY_ARGS &
dotnet ${DOTNET_ARGS-} "$BINARY" "$@" &
fi
# This will forward dotnet error code, set -e will abort the script if it's non-zero
@@ -101,8 +98,8 @@ else
# We're running ASF in non-headless mode, so we need STDIN to be operative
# Start ASF in the foreground, trap won't work until process exit
if [ -n "$BINARY_PREFIX" ]; then
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $BINARY_ARGS"
$BINARY_PREFIX "dotnet ${DOTNET_ARGS-} $BINARY $*"
else
dotnet ${DOTNET_ARGS-} "$BINARY" $BINARY_ARGS
dotnet ${DOTNET_ARGS-} "$BINARY" "$@"
fi
fi