Files
SwarmUI/launch-linux.sh
2024-06-22 17:15:12 -07:00

52 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Ensure correct local path.
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
cd $SCRIPT_DIR
# Add dotnet non-admin-install to path
export PATH="$SCRIPT_DIR/.dotnet:~/.dotnet:$PATH"
export DOTNET_CLI_TELEMETRY_OPTOUT=1
# Server settings option
if [ -f ./src/bin/always_pull ]; then
echo "Pulling latest changes..."
git pull
fi
if [ -f ./src/bin/must_rebuild ]; then
echo "Rebuilding..."
rm -rf ./src/bin/live_release_backup
mv ./src/bin/live_release ./src/bin/live_release_backup
rm ./src/bin/must_rebuild
elif [ -d .git ]; then
cur_head=`git rev-parse HEAD`
built_head=`cat src/bin/last_build`
if [ "$cur_head" != "$built_head" ]; then
printf "\n\nWARNING: You did a git pull without building. Will now build for you...\n\n"
rm -rf ./src/bin/live_release_backup
mv ./src/bin/live_release ./src/bin/live_release_backup
fi
else
printf "\n\nWARNING: YOU DID NOT CLONE FROM GIT. THIS WILL BREAK SOME SYSTEMS. PLEASE INSTALL PER THE README.\n\n"
fi
# Build the program if it isn't already built
if [ ! -f src/bin/live_release/SwarmUI.dll ]; then
dotnet build src/SwarmUI.csproj --configuration Release -o ./src/bin/live_release
cur_head=`git rev-parse HEAD`
echo $cur_head > src/bin/last_build
fi
# Default env configuration, gets overwritten by the C# code's settings handler
export ASPNETCORE_ENVIRONMENT="Production"
export ASPNETCORE_URLS="http://*:7801"
# Actual runner.
dotnet src/bin/live_release/SwarmUI.dll $@
# Exit code 42 means restart, anything else = don't.
if [ $? == 42 ]; then
. ./launch-linux.sh $@
fi