add mplayer file-based stdin buffer script
authormirabilos <m@mirbsd.org>
Sat, 4 Mar 2017 00:07:57 +0000 (00:07 +0000)
committermirabilos <m@mirbsd.org>
Sat, 4 Mar 2017 00:07:57 +0000 (00:07 +0000)
with careful fd handling (open as 5, pass as 4) to work with
ksh’s standard fd closing (or set -o posix would be required)

mksh/bufmplayer [new file with mode: 0644]

diff --git a/mksh/bufmplayer b/mksh/bufmplayer
new file mode 100644 (file)
index 0000000..2373fb2
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/mksh
+#-
+# Copyright © 2017
+#      mirabilos <m@mirbsd.org>
+#
+# Provided that these terms and disclaimer and all copyright notices
+# are retained or reproduced in an accompanying document, permission
+# is granted to deal in this work without restriction, including un‐
+# limited rights to use, publicly perform, distribute, sell, modify,
+# merge, give away, or sublicence.
+#
+# This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
+# the utmost extent permitted by applicable law, neither express nor
+# implied; without malicious intent or gross negligence. In no event
+# may a licensor, author or contributor be held liable for indirect,
+# direct, other damage, loss, or other issues arising in any way out
+# of dealing in the work, even if advised of the possibility of such
+# damage or existence of a defect, except proven that it results out
+# of said person’s immediate fault when using the work as intended.
+#-
+# Buffer standard input into a seekable file, pass that to mplayer.
+
+set -m
+T=$(mktemp /tmp/bufmplayer.XXXXXXXXXX) || exit 255
+cat >"$T" &
+sleep 0.1
+exec <&2 5<"$T"
+rm -f "$T"
+print -ru2 -- "I: buffering to $T…"
+sleep 3
+exec mplayer "$@" /dev/fd/4 4<&5