33 lines
1.0 KiB
Bash
Executable File
33 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "$0")" && pwd)
|
|
START="$SCRIPT_DIR/start-agent-session.sh"
|
|
SOCKET="mosaic-agent-test-$RANDOM-$$"
|
|
AGENT="agent-$RANDOM"
|
|
WORKDIR=$(mktemp -d)
|
|
trap 'tmux -L "$SOCKET" kill-server >/dev/null 2>&1 || true; rm -rf "$WORKDIR"' EXIT
|
|
|
|
fail() {
|
|
echo "FAIL: $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
MOSAIC_TMUX_SOCKET="$SOCKET" \
|
|
MOSAIC_AGENT_WORKDIR="$WORKDIR" \
|
|
MOSAIC_AGENT_COMMAND='bash --noprofile --norc -i' \
|
|
"$START" "$AGENT"
|
|
|
|
tmux -L "$SOCKET" has-session -t "=$AGENT:0.0" || fail "agent session was not created"
|
|
actual_dir=$(tmux -L "$SOCKET" display-message -p -t "=$AGENT:0.0" '#{pane_current_path}')
|
|
[ "$actual_dir" = "$WORKDIR" ] || fail "agent workdir mismatch: $actual_dir"
|
|
|
|
MOSAIC_TMUX_SOCKET="$SOCKET" \
|
|
MOSAIC_AGENT_WORKDIR="$WORKDIR" \
|
|
MOSAIC_AGENT_COMMAND='bash --noprofile --norc -i' \
|
|
"$START" "$AGENT" >/tmp/mosaic-start-agent-idempotent.out
|
|
|
|
grep -qF 'already running' /tmp/mosaic-start-agent-idempotent.out || fail "duplicate start was not idempotent"
|
|
|
|
echo "ok - start-agent-session"
|