Add Joplin, old Mac, and Fedora WiFi runbooks; simplify JA3 Whisky scripts and hotspot recovery.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
72
docs/apps/joplin/scripts/joplin-webdav-serve.sh
Executable file
72
docs/apps/joplin/scripts/joplin-webdav-serve.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/sh
|
||||
# Локальный WebDAV для синхронизации Joplin (Mac ↔ телефон по LAN).
|
||||
# Данные: ~/JoplinSync. Учётка: ~/.config/joplin-webdav/env
|
||||
#
|
||||
# ./joplin-webdav-serve.sh # фон
|
||||
# ./joplin-webdav-serve.sh --foreground # передний план (для launchd)
|
||||
|
||||
set -e
|
||||
|
||||
CONFIG="${JOPLIN_WEBDAV_CONFIG:-$HOME/.config/joplin-webdav/env}"
|
||||
LOG_DIR="$HOME/Library/Logs/joplin-webdav"
|
||||
PID_FILE="$HOME/.config/joplin-webdav/rclone.pid"
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname "$0")" && pwd)
|
||||
|
||||
mkdir -p "$LOG_DIR" "$(dirname "$PID_FILE")"
|
||||
|
||||
if [ ! -f "$CONFIG" ]; then
|
||||
echo "Нет $CONFIG — запустите: $SCRIPT_DIR/joplin-webdav-install.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
. "$CONFIG"
|
||||
|
||||
: "${JOPLIN_WEBDAV_USER:?}"
|
||||
: "${JOPLIN_WEBDAV_PASS:?}"
|
||||
: "${JOPLIN_WEBDAV_PORT:=8080}"
|
||||
: "${JOPLIN_WEBDAV_ROOT:=$HOME/JoplinSync}"
|
||||
|
||||
mkdir -p "$JOPLIN_WEBDAV_ROOT"
|
||||
|
||||
RCLONE="$(command -v rclone || echo /opt/homebrew/bin/rclone)"
|
||||
if [ ! -x "$RCLONE" ]; then
|
||||
echo "rclone не найден. Установите: brew install rclone" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run_rclone() {
|
||||
exec "$RCLONE" serve webdav "$JOPLIN_WEBDAV_ROOT" \
|
||||
--addr "0.0.0.0:${JOPLIN_WEBDAV_PORT}" \
|
||||
--user "$JOPLIN_WEBDAV_USER" \
|
||||
--pass "$JOPLIN_WEBDAV_PASS" \
|
||||
--vfs-cache-mode minimal \
|
||||
--log-file "$LOG_DIR/rclone.log" \
|
||||
--log-level INFO
|
||||
}
|
||||
|
||||
case "${1:-}" in
|
||||
--foreground|-f)
|
||||
run_rclone
|
||||
;;
|
||||
*)
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
old_pid=$(cat "$PID_FILE")
|
||||
if kill -0 "$old_pid" 2>/dev/null; then
|
||||
echo "Уже запущен (PID $old_pid), порт ${JOPLIN_WEBDAV_PORT}"
|
||||
exit 0
|
||||
fi
|
||||
rm -f "$PID_FILE"
|
||||
fi
|
||||
nohup "$0" --foreground >>"$LOG_DIR/stdout.log" 2>&1 &
|
||||
echo $! >"$PID_FILE"
|
||||
sleep 1
|
||||
if kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
|
||||
echo "WebDAV запущен (PID $(cat "$PID_FILE")), порт ${JOPLIN_WEBDAV_PORT}"
|
||||
else
|
||||
echo "Не удалось запустить. См. $LOG_DIR/stdout.log" >&2
|
||||
rm -f "$PID_FILE"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user