Fix mempalace init hang on stdin in docker run -it
mempalace init has an interactive 'Mine this directory now? [Y/n]' prompt at the end that --yes does not auto-answer in all paths (notably empty or near-empty workspaces). The entrypoint redirected stdout/stderr to /dev/null but left stdin connected to the TTY. When invoked from 'docker run -it' the process blocked forever on stdin with 0% CPU, silently — the user's symptom of 'still hangs at Initializing MemPalace for workspace'. Fix: redirect stdin from /dev/null too. EOF on stdin makes the prompt fall through to its default (skip), and the process exits cleanly. Verified locally: fresh-container start now completes in 1.3 seconds (vs hanging indefinitely).
This commit is contained in:
+6
-1
@@ -25,7 +25,12 @@ if command -v mempalace &>/dev/null && [ -d /workspace ]; then
|
|||||||
PALACE_DIR="${HOME}/.mempalace"
|
PALACE_DIR="${HOME}/.mempalace"
|
||||||
if [ ! -d "$PALACE_DIR/palace" ]; then
|
if [ ! -d "$PALACE_DIR/palace" ]; then
|
||||||
echo "Initializing MemPalace for workspace (non-interactive)..."
|
echo "Initializing MemPalace for workspace (non-interactive)..."
|
||||||
mempalace init --yes /workspace >/dev/null 2>&1 || true
|
# </dev/null: mempalace init has an interactive "Mine this directory
|
||||||
|
# now? [Y/n]" prompt that --yes does not auto-answer in all paths.
|
||||||
|
# Without redirected stdin, the process blocks here forever when run
|
||||||
|
# from `docker run -it` (the TTY keeps stdin open). EOF on stdin
|
||||||
|
# makes the prompt fall through to its default (skip).
|
||||||
|
mempalace init --yes /workspace </dev/null >/dev/null 2>&1 || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user