From 32e940018092b0d48198555ccf5fcc219932ea2a Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Sun, 17 Mar 2019 13:22:26 -0700 Subject: add NEW queue midnight commander stuff --- .local/share/mc/extfs.d/ganneff | 74 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100755 .local/share/mc/extfs.d/ganneff (limited to '.local/share/mc/extfs.d/ganneff') diff --git a/.local/share/mc/extfs.d/ganneff b/.local/share/mc/extfs.d/ganneff new file mode 100755 index 00000000..56885daa --- /dev/null +++ b/.local/share/mc/extfs.d/ganneff @@ -0,0 +1,74 @@ +#! /bin/bash + +set -e +set -u +set -E + +# (C) 2011 Joerg Jaspert +# GPLv2, no later + +LC_ALL=C +export LC_ALL=C + +function dofslist () { + case "$1" in + *.lzma) ZCAT="lzma -dc" ;; + *.xz) ZCAT="xz -dc" ;; + *.bz2) ZCAT="bzip2 -dc";; + *.gz) ZCAT="gzip -dc" ;; + *.z) ZCAT="gzip -dc" ;; + *.Z) ZCAT="gzip -dc" ;; + *) ZCAT="cat" ;; + esac + + $ZCAT "$1" | tar tvvf - | + while read MODE OWNER SIZE DATE TIME NAME LINK; do + # Filter out directories. They would be empty anyways + if [[ ${MODE} =~ ^d.* ]]; then + continue + fi + OUTLINE="${MODE}" # permission string + OUTLINE="${OUTLINE} 1" # number of links. definitely wrong right now + OUTLINE="${OUTLINE} ${OWNER%%/*}" # file owner + OUTLINE="${OUTLINE} ${OWNER##*/}" # file group + OUTLINE="${OUTLINE} ${SIZE}" # file size + if [[ ${DATE} =~ ([0-9]{4})-([0-9]{2})-([0-9]{2}) ]]; then + DATE="${BASH_REMATCH[2]}-${BASH_REMATCH[3]}-${BASH_REMATCH[1]}" + fi + OUTLINE="${OUTLINE} ${DATE} ${TIME}" # file date/time +# NAME=${NAME#*/} + OUTLINE="${OUTLINE} ${NAME//\//\\}" # filename + OUTLINE="${OUTLINE} " # filepath + + if [[ "${LINK}" =~ "^->.*" ]]; then + OUTLINE="${OUTLINE} ${LINK}" + fi + echo ${OUTLINE} + done +} + +function docopyout () { + case "$2" in + *.lzma) ZCAT="lzma -dc" ;; + *.xz) ZCAT="xz -dc" ;; + *.bz2) ZCAT="bzip2 -dc";; + *.gz) ZCAT="gzip -dc" ;; + *.z) ZCAT="gzip -dc" ;; + *.Z) ZCAT="gzip -dc" ;; + *) ZCAT="cat" ;; + esac + NAME=${3//\\/\/} + $ZCAT "$2" | tar -xO "$NAME" > "$4" +} + +case "$1" in + list) + dofslist "$2" | sort -k 8; + exit 0 + ;; + copyout) + docopyout "$@" + exit 0 + ;; +esac +exit 1 -- cgit v1.2.3