Track day metrics/anamnesis HARD rules under .cursor/rules and personal docs so each screening updates days/{KIN}, dynamics, and big-data ledger.
Co-authored-by: Cursor <cursoragent@cursor.com>
110 lines
4.3 KiB
Bash
Executable File
110 lines
4.3 KiB
Bash
Executable File
#!/bin/sh
|
||
CONFIG="${JOPLIN_WEBDAV_CONFIG:-$HOME/.config/joplin-webdav/env}"
|
||
PID_FILE="$HOME/.config/joplin-webdav/rclone.pid"
|
||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
||
|
||
echo "=== WebDAV Joplin ==="
|
||
if [ -f "$CONFIG" ]; then
|
||
# shellcheck disable=SC1090
|
||
. "$CONFIG"
|
||
echo "Пользователь: ${JOPLIN_WEBDAV_USER:-?}"
|
||
echo "Порт: ${JOPLIN_WEBDAV_PORT:-8080}"
|
||
echo "Папка: ${JOPLIN_WEBDAV_ROOT:-$HOME/JoplinSync}"
|
||
else
|
||
echo "Конфиг не найден: $CONFIG"
|
||
fi
|
||
|
||
echo ""
|
||
echo "=== Процесс ==="
|
||
if pgrep -f "rclone serve webdav" >/dev/null 2>&1; then
|
||
pgrep -lf "rclone serve webdav" 2>/dev/null || true
|
||
else
|
||
echo "Не запущен → ./docs/apps/joplin/scripts/joplin-webdav-serve.sh"
|
||
fi
|
||
|
||
port="${JOPLIN_WEBDAV_PORT:-8080}"
|
||
|
||
echo ""
|
||
echo "=== URL для телефона (Android-хотспот) ==="
|
||
if [ -x "$SCRIPT_DIR/joplin-hotspot-alias.sh" ]; then
|
||
"$SCRIPT_DIR/joplin-hotspot-alias.sh" status
|
||
else
|
||
echo "(нет joplin-hotspot-alias.sh)"
|
||
fi
|
||
|
||
echo ""
|
||
echo "=== mDNS (.local) — с телефона НЕ работает ==="
|
||
if [ -x "$SCRIPT_DIR/joplin-mdns-setup.sh" ]; then
|
||
host="$(scutil --get LocalHostName 2>/dev/null | tr '[:upper:]' '[:lower:]' || echo '?')"
|
||
echo "http://${host}.local:${port} — только Mac/Windows; Android-хотспот не резолвит"
|
||
fi
|
||
|
||
echo ""
|
||
echo "=== IP Mac (DHCP, справочно) ==="
|
||
ip=$(ipconfig getifaddr en0 2>/dev/null || true)
|
||
[ -n "$ip" ] && echo "primary en0: $ip" || echo "нет IP"
|
||
|
||
echo ""
|
||
echo "=== Порт :8080 ==="
|
||
lsof -nP -iTCP:"$port" -sTCP:LISTEN 2>/dev/null || echo "не слушает"
|
||
|
||
echo ""
|
||
echo "=== URL в Joplin (Mac) ==="
|
||
settings="$HOME/.config/joplin-desktop/settings.json"
|
||
if [ -f "$settings" ]; then
|
||
grep -o '"sync\.6\.path": *"[^"]*"' "$settings" 2>/dev/null | sed 's/.*"\(http[^"]*\)".*/\1/' \
|
||
| while read -r u; do echo "settings.json: $u"; done
|
||
fi
|
||
|
||
log="$HOME/Library/Logs/joplin-webdav/rclone.log"
|
||
|
||
echo ""
|
||
echo "=== Сеть: Mac и телефон в одной LAN? ==="
|
||
gw=$(route -n get default 2>/dev/null | awk '/gateway:/{print $2; exit}')
|
||
ip=$(ipconfig getifaddr en0 2>/dev/null || true)
|
||
case "$gw" in
|
||
192.168.1.*|192.168.0.*)
|
||
peers=$(arp -an 2>/dev/null | grep "$gw" | awk '{print $2}' | tr -d '()' | grep -vE "^${gw%.*}\.(1|255)$|^$ip$" | head -3)
|
||
if [ -z "$peers" ]; then
|
||
echo "⚠ Mac на домашнем Wi‑Fi ($ip), других устройств в LAN не видно"
|
||
echo " Телефон, скорее всего, НЕ в этой Wi‑Fi → синк невозможен"
|
||
echo " Вариант A: Mac подключить к хотспоту телефона"
|
||
echo " Вариант B: телефон подключить к той же Wi‑Fi, что Mac"
|
||
else
|
||
echo "Mac на Wi‑Fi роутера ($ip). Телефон должен быть в той же Wi‑Fi."
|
||
fi
|
||
;;
|
||
10.*|172.20.10.*|192.168.43.*|192.168.44.*)
|
||
echo "Mac на хотспоте ($ip). URL на телефоне — из блока выше (*.100)."
|
||
if [ -n "$gw" ] && [ -f "$log" ] && ! grep -q "from ${gw}:" "$log" 2>/dev/null; then
|
||
echo "⚠ В логе rclone ещё не было запросов с телефона ($gw)"
|
||
echo " Проверьте URL в браузере НА ТЕЛЕФОНЕ (не только в Joplin)"
|
||
fi
|
||
;;
|
||
*)
|
||
[ -n "$gw" ] && echo "gateway: $gw, Mac: ${ip:-?}"
|
||
;;
|
||
esac
|
||
|
||
echo ""
|
||
echo "=== rclone (запросы с телефона?) ==="
|
||
gw=$(route -n get default 2>/dev/null | awk '/gateway:/{print $2; exit}')
|
||
if [ -f "$log" ]; then
|
||
phone_lines=$(grep -E 'from 10\.|from 192\.168\.' "$log" 2>/dev/null | grep -v '127.0.0.1' | tail -5)
|
||
if [ -n "$gw" ] && grep -q "from ${gw}:" "$log" 2>/dev/null; then
|
||
echo "OK: в логе есть запросы с телефона/шлюза ($gw)"
|
||
grep "from ${gw}:" "$log" 2>/dev/null | tail -2
|
||
elif [ -n "$phone_lines" ]; then
|
||
echo "$phone_lines"
|
||
echo "⚠ нет запросов с шлюза ${gw:-?} — возможно только тесты с Mac"
|
||
else
|
||
echo "нет запросов с LAN — телефон не достучался до rclone"
|
||
fi
|
||
echo ""
|
||
echo "Смотреть live: tail -f $log | grep -v 127.0.0.1"
|
||
fi
|
||
|
||
echo ""
|
||
echo "=== Учётка ==="
|
||
[ -f "$CONFIG" ] && echo "Пароль: $CONFIG → JOPLIN_WEBDAV_PASS"
|