diff options
Diffstat (limited to 'scripts/qs1')
-rwxr-xr-x | scripts/qs1 | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/qs1 b/scripts/qs1 new file mode 100755 index 0000000..d524223 --- /dev/null +++ b/scripts/qs1 @@ -0,0 +1,41 @@ +#!/bin/bash +set -eu +port=8000 + +disp_quick_usage() +{ + cat <<EOF +Quick one-shot share +#################### + +Dependings on the current lan configuration, +you can access the file with one of: + + wget --content-disposition ${HOSTNAME}.local:${port} + wget --content-disposition ${HOSTNAME}:${port} +EOF + for ip in $(ip -oneline -family inet address show \ + | sed 's/^.*inet \([0-9.]\+\).*$/\1/') \ + $(ip -oneline -family inet6 address show \ + | sed 's/^.*inet6 \([0-9:a-fA-F]\+\).*$/\1/'); do + echo " wget --content-disposition ${ip}:${port}" + done + echo "" + echo "Note: --content-disposition is optional => use remote filename" + echo "==================================================" +} + + +disp_quick_usage +filename="$1" +sfilename="$(echo x$filename | sed 's/^x//;s/"//')" +( + echo "HTTP/1.1 200 OK" + #echo "Content-Type: $(file -bni "$1")" + echo "Content-Type: application/octet-stream" + echo "Content-Transfer-Encoding: binary" + echo "Content-Disposition: attachment; filename=\"$sfilename\"" + echo "Content-Length: $(du -b "$filename" | cut -f1)" + echo "" + cat -- "$filename" +) | nc -l -q0 -p $port >/dev/null 2>&1 |