mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-02 06:56:36 +08:00
dmux
This commit is contained in:
+48
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# Example: worktree_created hook
|
||||
#
|
||||
# This hook runs after a new worktree is created and before the agent launches.
|
||||
# Use it to set up the worktree environment (install deps, copy configs, etc.)
|
||||
# Stdout/stderr is streamed into the new pane's setup UI while this hook runs.
|
||||
# dmux waits for this hook without a fixed timeout.
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
status() {
|
||||
if [ "${DMUX_PROGRESS:-0}" = "1" ]; then
|
||||
echo "${DMUX_STATUS_PREFIX:-DMUX_STATUS:} $*"
|
||||
else
|
||||
echo "[Hook] $*"
|
||||
fi
|
||||
}
|
||||
|
||||
status "Setting up worktree: $DMUX_SLUG"
|
||||
|
||||
cd "$DMUX_WORKTREE_PATH"
|
||||
|
||||
# Install dependencies before the agent launches.
|
||||
if [ -f "pnpm-lock.yaml" ]; then
|
||||
status "Installing dependencies with pnpm"
|
||||
pnpm install --prefer-offline
|
||||
elif [ -f "package-lock.json" ]; then
|
||||
status "Installing dependencies with npm"
|
||||
npm install
|
||||
elif [ -f "yarn.lock" ]; then
|
||||
status "Installing dependencies with yarn"
|
||||
yarn install
|
||||
fi
|
||||
|
||||
# Copy environment file if it exists
|
||||
if [ -f "$DMUX_ROOT/.env.local" ]; then
|
||||
status "Copying .env.local"
|
||||
cp "$DMUX_ROOT/.env.local" "$DMUX_WORKTREE_PATH/.env.local"
|
||||
fi
|
||||
|
||||
# Keep existing git author identity.
|
||||
# Do not set git user.name/user.email in this hook.
|
||||
|
||||
# Create a log entry
|
||||
echo "[$(date)] Created worktree: $DMUX_SLUG | Agent: $DMUX_AGENT | Prompt: $DMUX_PROMPT" \
|
||||
>> "$DMUX_ROOT/.dmux/worktree_history.log"
|
||||
|
||||
status "Worktree setup complete"
|
||||
Reference in New Issue
Block a user