aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/qs1
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/qs1')
-rwxr-xr-xscripts/qs141
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