Prompts for a password without echoing, URL-encodes it via Python's urllib.parse.quote, and prints the result with a ready-to-paste .env snippet. Password is passed via environment variable to avoid any shell quoting or injection issues — never written to disk or network. https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
25 lines
783 B
Bash
Executable File
25 lines
783 B
Bash
Executable File
#!/bin/bash
|
|
# url-encode-password.sh — URL-encode a password for use in an RTSP (or any) URL.
|
|
#
|
|
# Runs entirely locally. The password is read without echoing, never written
|
|
# to disk, never sent anywhere. The encoded result is printed to stdout so
|
|
# you can copy it straight into your .env file.
|
|
#
|
|
# Usage:
|
|
# ./url-encode-password.sh
|
|
|
|
printf 'Password (not echoed): '
|
|
read -rs password
|
|
echo # newline after silent input
|
|
|
|
# Pass via environment variable — avoids any shell quoting / injection issues.
|
|
encoded=$(PASSWORD="$password" python3 -c "
|
|
import os, urllib.parse
|
|
print(urllib.parse.quote(os.environ['PASSWORD'], safe=''))
|
|
")
|
|
|
|
echo "URL-encoded: $encoded"
|
|
echo ""
|
|
echo "Paste into .env like:"
|
|
echo " CAM_RTSP_<cam>='rtsp://admin:${encoded}@192.168.1.XXX:554/stream1'"
|