diff --git a/app/server/scripts/start-dev-server.sh b/app/server/scripts/start-dev-server.sh new file mode 100755 index 0000000000..13b9cd10d8 --- /dev/null +++ b/app/server/scripts/start-dev-server.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# Change to the parent directory of the directory containing this script. +cd "$(cd "$(dirname "$0")" && pwd)/.." + +# Ref: . +if [[ -f .env ]]; then + echo "Found a .env file, loading environment variables from that file." + set -o allexport + source .env +fi + +source ../util/is_wsl.sh +if [ $IS_WSL ]; then + _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true $_JAVA_OPTIONS" +fi + +(cd dist && exec java -jar server-*.jar) \ No newline at end of file diff --git a/app/util/is_wsl.sh b/app/util/is_wsl.sh new file mode 100755 index 0000000000..ee100634c0 --- /dev/null +++ b/app/util/is_wsl.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +IS_WSL= + +proc_version="$(cat /proc/version)" +case "$proc_version" in +*icrosoft*) + IS_WSL=true +;; +*WSL*) + IS_WSL=true +;; +esac diff --git a/app/util/is_wsl_test.sh b/app/util/is_wsl_test.sh new file mode 100755 index 0000000000..ba97288f68 --- /dev/null +++ b/app/util/is_wsl_test.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +set -e + +DIR="$(cd "$(dirname "$0")" && pwd)" + +distro= + +cat() { + echo $distro +} + +fail() { + local reason=$1 + + echo "${reason} + context: ${distro}" + + exit 1 +} + +stub_distro() { + local name=$1 + + distro=$name + source $DIR/is_wsl.sh +} + +stub_distro "Linux Computer 4.19.104-microsoft-standard #1 SMP Wed Feb 19 06:37:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux" +if [ ! $IS_WSL ]; then + fail "Failed: Detected lack of WSL where it should have." +fi + +stub_distro "Linux Computer 4.19.104-WSL-standard #1 SMP Wed Feb 19 06:37:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux" +if [ ! $IS_WSL ]; then + fail "Failed: Detected lack of WSL where it should have." +fi + +stub_distro "Linux pop-os 5.3.0-22-generic #24+system76~1573659475~19.04~26b2022-Ubuntu SMP Wed Nov 13 20:0 x86_64 x86_64 x86_64 GNU/Linux" +if [ $IS_WSL ]; then + fail "Failed: Detected WSL where it shouldn't have." +fi + +echo "All Tests Pass!"