diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2019-03-17 13:22:26 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2019-03-17 13:23:34 -0700 |
commit | 32e940018092b0d48198555ccf5fcc219932ea2a (patch) | |
tree | 5770ce4eb3e0cb9c7818ee669aa2c6ff9f4f84da /.local/share/mc/extfs.d/ganneff | |
parent | 75c5573fd786843effac306a75b4d31be0263316 (diff) | |
download | dotfiles-32e940018092b0d48198555ccf5fcc219932ea2a.tar.gz |
add NEW queue midnight commander stuff
Diffstat (limited to '.local/share/mc/extfs.d/ganneff')
-rwxr-xr-x | .local/share/mc/extfs.d/ganneff | 74 |
1 files changed, 74 insertions, 0 deletions
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 <joerg@debian.org> +# 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 |