heroagent/scripts/open_webdav_osx.sh
2025-04-23 04:18:28 +02:00

92 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# Default values
HOST="localhost"
PORT="9999"
PATH_PREFIX=""
USE_HTTPS=false
USERNAME=""
PASSWORD=""
# Parse command line arguments
while [[ $# -gt 0 ]]; do
case $1 in
-h|--host)
HOST="$2"
shift 2
;;
-p|--port)
PORT="$2"
shift 2
;;
-path|--path-prefix)
PATH_PREFIX="$2"
shift 2
;;
-s|--https)
USE_HTTPS=true
shift
;;
-u|--username)
USERNAME="$2"
shift 2
;;
-pw|--password)
PASSWORD="$2"
shift 2
;;
-h|--help)
echo "Usage: $0 [options]"
echo "Options:"
echo " -h, --host HOSTNAME WebDAV server hostname (default: localhost)"
echo " -p, --port PORT WebDAV server port (default: 9999)"
echo " -path, --path-prefix PATH WebDAV path prefix (default: none)"
echo " -s, --https Use HTTPS instead of HTTP"
echo " -u, --username USERNAME Username for authentication"
echo " -pw, --password PASSWORD Password for authentication"
echo " --help Show this help message"
exit 0
;;
*)
echo "Unknown option: $1"
echo "Use --help for usage information"
exit 1
;;
esac
done
# Construct the WebDAV URL
PROTOCOL="http"
if [ "$USE_HTTPS" = true ]; then
PROTOCOL="https"
fi
# Build the URL with authentication if provided
if [ -n "$USERNAME" ] && [ -n "$PASSWORD" ]; then
# URL encode the username and password
USERNAME_ENCODED=$(echo -n "$USERNAME" | xxd -plain | tr -d '\n' | sed 's/\(.\{2\}\)/%\1/g')
PASSWORD_ENCODED=$(echo -n "$PASSWORD" | xxd -plain | tr -d '\n' | sed 's/\(.\{2\}\)/%\1/g')
WEBDAV_URL="${PROTOCOL}://${USERNAME_ENCODED}:${PASSWORD_ENCODED}@${HOST}:${PORT}${PATH_PREFIX}"
echo "Opening WebDAV connection to ${PROTOCOL}://${USERNAME}:****@${HOST}:${PORT}${PATH_PREFIX} in Finder..."
else
WEBDAV_URL="${PROTOCOL}://${HOST}:${PORT}${PATH_PREFIX}"
echo "Opening WebDAV connection to $WEBDAV_URL in Finder..."
fi
# Open the WebDAV URL in Finder
open "$WEBDAV_URL"
echo "WebDAV connection opened in Finder."
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
echo "If prompted, enter your credentials to connect."
fi
echo "Note: macOS may require you to reconnect after system restarts."
echo "Debug tip: If connection fails, try the following:"
echo " 1. Check that the WebDAV server is running"
echo " 2. Verify the hostname and port are correct"
echo " 3. If using HTTPS, ensure the certificate is trusted"
echo " 4. Try connecting manually in Finder with Go > Connect to Server"