mirror of
https://github.com/JustArchiNET/ArchiSteamFarm.git
synced 2026-01-01 22:20:52 +00:00
committed by
GitHub
parent
402867a025
commit
c89366b0a6
@@ -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);
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user