brain-dev 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hooks/bootstrap.sh +6 -5
- package/hooks/check-update.sh +18 -6
- package/package.json +1 -1
package/hooks/bootstrap.sh
CHANGED
|
@@ -13,6 +13,12 @@ if [ ! -f "$BRAIN_DIR/brain.json" ]; then
|
|
|
13
13
|
exit 0
|
|
14
14
|
fi
|
|
15
15
|
|
|
16
|
+
# Background update check (non-blocking, must run before any exit 0)
|
|
17
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
18
|
+
INSTALLED_VERSION=$(node -e "try{const b=JSON.parse(require('fs').readFileSync('$BRAIN_DIR/brain.json','utf8'));console.log(b.version||'unknown')}catch{console.log('unknown')}" 2>/dev/null)
|
|
19
|
+
bash "$SCRIPT_DIR/check-update.sh" "$BRAIN_DIR" "$INSTALLED_VERSION" &>/dev/null &
|
|
20
|
+
disown
|
|
21
|
+
|
|
16
22
|
# Crash recovery check
|
|
17
23
|
RECOVERY=$(npx brain-dev recover --json 2>/dev/null)
|
|
18
24
|
if [ $? -eq 0 ] && echo "$RECOVERY" | node -e "
|
|
@@ -66,8 +72,3 @@ try {
|
|
|
66
72
|
if [ -f "$BRAIN_DIR/brain.json" ]; then
|
|
67
73
|
npx brain-dev health --quick 2>/dev/null
|
|
68
74
|
fi
|
|
69
|
-
|
|
70
|
-
# Background update check (non-blocking)
|
|
71
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
72
|
-
bash "$SCRIPT_DIR/check-update.sh" "$BRAIN_DIR" &>/dev/null &
|
|
73
|
-
disown
|
package/hooks/check-update.sh
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Background npm version check — writes result to .brain/.update-check.json
|
|
3
3
|
# Called by bootstrap.sh with & (background, non-blocking)
|
|
4
|
+
# Usage: check-update.sh <brain-dir> [installed-version]
|
|
4
5
|
|
|
5
6
|
BRAIN_DIR="${1:-.brain}"
|
|
6
7
|
CACHE_FILE="$BRAIN_DIR/.update-check.json"
|
|
8
|
+
INSTALLED="${2:-}"
|
|
7
9
|
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
INSTALLED=$(npx brain-dev version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
|
|
10
|
+
# If installed version not passed, read from brain.json
|
|
11
|
+
if [ -z "$INSTALLED" ] || [ "$INSTALLED" = "unknown" ]; then
|
|
12
|
+
INSTALLED=$(node -e "try{const b=JSON.parse(require('fs').readFileSync('$BRAIN_DIR/brain.json','utf8'));console.log(b.version||'unknown')}catch{console.log('unknown')}" 2>/dev/null)
|
|
12
13
|
fi
|
|
13
14
|
|
|
14
|
-
#
|
|
15
|
-
|
|
15
|
+
# Still unknown — cannot compare, skip
|
|
16
|
+
if [ -z "$INSTALLED" ] || [ "$INSTALLED" = "unknown" ]; then
|
|
17
|
+
exit 0
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Query npm for latest (use perl as timeout fallback for stock macOS)
|
|
21
|
+
if command -v timeout &>/dev/null; then
|
|
22
|
+
LATEST=$(timeout 10 npm view brain-dev version 2>/dev/null)
|
|
23
|
+
elif command -v perl &>/dev/null; then
|
|
24
|
+
LATEST=$(perl -e 'alarm 10; exec @ARGV' npm view brain-dev version 2>/dev/null)
|
|
25
|
+
else
|
|
26
|
+
LATEST=$(npm view brain-dev version 2>/dev/null)
|
|
27
|
+
fi
|
|
16
28
|
|
|
17
29
|
if [ -z "$LATEST" ]; then
|
|
18
30
|
# npm unavailable or timeout — skip silently
|