37 lines
867 B
Bash
Executable file
37 lines
867 B
Bash
Executable file
#!/bin/sh
|
|
set -eu
|
|
|
|
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
BUILD_DIR="$ROOT_DIR/build"
|
|
SOCK_PATH=${AMDUATD_SOCK:-"$ROOT_DIR/amduatd.sock"}
|
|
STORE_ROOT=${AMDUATD_ROOT:-"$ROOT_DIR/.amduat-asl"}
|
|
|
|
if [ ! -d "$BUILD_DIR" ]; then
|
|
cmake -S "$ROOT_DIR" -B "$BUILD_DIR"
|
|
fi
|
|
|
|
cmake --build "$BUILD_DIR" -j
|
|
|
|
if [ -S "$SOCK_PATH" ]; then
|
|
pid=
|
|
if command -v lsof >/dev/null 2>&1; then
|
|
pid=$(lsof -t -- "$SOCK_PATH" 2>/dev/null | head -n 1 || true)
|
|
elif command -v fuser >/dev/null 2>&1; then
|
|
pid=$(fuser "$SOCK_PATH" 2>/dev/null | awk '{print $1}' | head -n 1 || true)
|
|
fi
|
|
|
|
if [ -n "${pid:-}" ]; then
|
|
kill "$pid" 2>/dev/null || true
|
|
i=0
|
|
while [ $i -lt 30 ] && kill -0 "$pid" 2>/dev/null; do
|
|
i=$((i + 1))
|
|
sleep 0.1
|
|
done
|
|
fi
|
|
|
|
rm -f "$SOCK_PATH"
|
|
fi
|
|
|
|
exec "$BUILD_DIR/amduatd" --root "$STORE_ROOT" --sock "$SOCK_PATH"
|
|
|