websnap
This commit is contained in:
49
websnap/run.sh
Executable file
49
websnap/run.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
BG=false
|
||||
for arg in "$@"; do
|
||||
[[ "$arg" == "bg" || "$arg" == "--bg" ]] && BG=true
|
||||
done
|
||||
|
||||
log() { $BG || echo "$@"; }
|
||||
|
||||
# Find the HTML file
|
||||
HTML_FILE=$(find . -maxdepth 2 -name "*.html" | head -1)
|
||||
|
||||
if [ -z "$HTML_FILE" ]; then
|
||||
log "No HTML file found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Pick a free port
|
||||
PORT=8000
|
||||
while lsof -i :$PORT &>/dev/null; do
|
||||
PORT=$((PORT + 1))
|
||||
done
|
||||
|
||||
DIR=$(dirname "$HTML_FILE")
|
||||
FILE=$(basename "$HTML_FILE")
|
||||
|
||||
log "Serving $HTML_FILE on http://localhost:$PORT/$FILE"
|
||||
|
||||
open_browser() {
|
||||
local url=$1
|
||||
if command -v xdg-open &>/dev/null; then
|
||||
xdg-open "$url"
|
||||
elif command -v open &>/dev/null; then
|
||||
open "$url"
|
||||
elif command -v start &>/dev/null; then
|
||||
start "$url"
|
||||
else
|
||||
log "open: $url"
|
||||
fi
|
||||
}
|
||||
|
||||
(sleep 0.5 && open_browser "http://localhost:$PORT/$FILE") &
|
||||
|
||||
if $BG; then
|
||||
python3 -m http.server "$PORT" --directory "$DIR" &>/dev/null &
|
||||
disown
|
||||
else
|
||||
python3 -m http.server "$PORT" --directory "$DIR"
|
||||
fi
|
||||
Reference in New Issue
Block a user