45 lines
1.3 KiB
Bash
Executable File
45 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
WORKSPACE="/home/openclaw/.openclaw/workspace"
|
|
TMP_JSONL="/tmp/eva-memory-sync.jsonl"
|
|
REMOTE_HOST="eva_memory@192.168.0.135"
|
|
REMOTE_KEY="/home/openclaw/.ssh/id_ed25519_vps_openclaw_45158"
|
|
REMOTE_JSONL="/tmp/eva-memory-sync.jsonl"
|
|
LOG="$WORKSPACE/logs/memory-sync.log"
|
|
|
|
mkdir -p "$WORKSPACE/logs"
|
|
|
|
python3 - <<'PY' "$WORKSPACE" "$TMP_JSONL"
|
|
import json, sys
|
|
from pathlib import Path
|
|
ws=Path(sys.argv[1])
|
|
out=Path(sys.argv[2])
|
|
paths=[]
|
|
mem=ws/'MEMORY.md'
|
|
if mem.exists(): paths.append(mem)
|
|
for p in sorted((ws/'memory').glob('*.md')):
|
|
if 'dialogs' in p.parts:
|
|
continue
|
|
paths.append(p)
|
|
with out.open('w',encoding='utf-8') as f:
|
|
for p in paths:
|
|
try:
|
|
content=p.read_text(encoding='utf-8',errors='ignore')
|
|
except Exception:
|
|
continue
|
|
rec={
|
|
'source_path': str(p.relative_to(ws)),
|
|
'title': p.name,
|
|
'item_type': 'memory',
|
|
'content': content,
|
|
}
|
|
f.write(json.dumps(rec, ensure_ascii=False)+'\n')
|
|
print(f'prepared {len(paths)} files')
|
|
PY
|
|
|
|
scp -i "$REMOTE_KEY" "$TMP_JSONL" "$REMOTE_HOST:$REMOTE_JSONL" >/dev/null
|
|
ssh -i "$REMOTE_KEY" "$REMOTE_HOST" "/home/eva_memory/bin/import-memory-jsonl.sh $REMOTE_JSONL" >/dev/null
|
|
|
|
echo "[$(date -u +'%F %T UTC')] sync ok" >> "$LOG"
|