#!/bin/sh # Установка: конфиг, launchd (автозапуск), первый старт WebDAV. set -e ROOT="$(CDPATH= cd -- "$(dirname "$0")" && pwd)" CONFIG_DIR="$HOME/.config/joplin-webdav" CONFIG="$CONFIG_DIR/env" LAUNCH_AGENT="$HOME/Library/LaunchAgents/com.eternal.joplin-webdav.plist" SERVE="$ROOT/joplin-webdav-serve.sh" mkdir -p "$CONFIG_DIR" "$HOME/JoplinSync" "$HOME/Library/Logs/joplin-webdav" if [ ! -f "$CONFIG" ]; then PASS=$(openssl rand -base64 18 | tr -d '/+=' | head -c 24) cat > "$CONFIG" </dev/null 2>&1; then echo "Устанавливаю rclone..." brew install rclone fi mkdir -p "$HOME/Library/LaunchAgents" cat > "$LAUNCH_AGENT" < Label com.eternal.joplin-webdav ProgramArguments $SERVE --foreground RunAtLoad KeepAlive StandardOutPath $HOME/Library/Logs/joplin-webdav/launchd.out.log StandardErrorPath $HOME/Library/Logs/joplin-webdav/launchd.err.log EOF launchctl bootout "gui/$(id -u)/com.eternal.joplin-webdav" 2>/dev/null || true launchctl bootstrap "gui/$(id -u)" "$LAUNCH_AGENT" launchctl enable "gui/$(id -u)/com.eternal.joplin-webdav" 2>/dev/null || true launchctl enable "gui/$(id -u)/com.eternal.joplin-webdav" 2>/dev/null || true chmod +x "$ROOT"/joplin-mdns-setup.sh 2>/dev/null || true if [ -x "$ROOT/joplin-mdns-setup.sh" ]; then echo "" echo "=== mDNS (стабильный URL на телефоне) ===" if [ "$(scutil --get LocalHostName 2>/dev/null)" = "joplin-mac" ]; then "$ROOT/joplin-mdns-setup.sh" status || true else echo "LocalHostName ещё не joplin-mac. Один раз:" echo " $ROOT/joplin-mdns-setup.sh install" fi fi sleep 2 "$ROOT/joplin-webdav-status.sh" echo "" echo "Пароль для Joplin:" grep JOPLIN_WEBDAV_PASS "$CONFIG" | cut -d= -f2- echo "" echo "На телефоне (один раз, навсегда): http://joplin-mac.local:8080" echo "Установка имени: $ROOT/joplin-mdns-setup.sh install"