summaryrefslogtreecommitdiff
path: root/.local
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2019-03-17 13:22:26 -0700
committerSean Whitton <spwhitton@spwhitton.name>2019-03-17 13:23:34 -0700
commit32e940018092b0d48198555ccf5fcc219932ea2a (patch)
tree5770ce4eb3e0cb9c7818ee669aa2c6ff9f4f84da /.local
parent75c5573fd786843effac306a75b4d31be0263316 (diff)
downloaddotfiles-32e940018092b0d48198555ccf5fcc219932ea2a.tar.gz
add NEW queue midnight commander stuff
Diffstat (limited to '.local')
-rwxr-xr-x.local/share/mc/extfs.d/ganneff74
-rwxr-xr-x.local/share/mc/extfs.d/gannefffast86
2 files changed, 160 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
diff --git a/.local/share/mc/extfs.d/gannefffast b/.local/share/mc/extfs.d/gannefffast
new file mode 100755
index 00000000..7ad9a183
--- /dev/null
+++ b/.local/share/mc/extfs.d/gannefffast
@@ -0,0 +1,86 @@
+#! /bin/bash
+
+set -e
+set -u
+set -E
+
+# (C) 2011,2013 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
+
+ if [[ ! -d ${EXTRACTTO} ]]; then
+ mkdir -p "${EXTRACTTO}"
+ $ZCAT "$1" | tar -C "${EXTRACTTO}" --extract -f -
+ fi
+ $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//\\/\/}
+ if [[ -f "${EXTRACTTO}/${NAME}" ]]; then
+ cp "${EXTRACTTO}/${NAME}" "${4}"
+ else
+ $ZCAT "$2" | tar -xO "$NAME" > "$4"
+ fi
+}
+
+ARCHIVEPATH=${2%/*}
+ARCHIVENAME=${2##*/}
+EXTRACTTO="${ARCHIVEPATH}/${ARCHIVENAME}.d"
+
+case "$1" in
+ list)
+ dofslist "$2" | sort -k 8;
+ exit 0
+ ;;
+ copyout)
+ docopyout "$@"
+ exit 0
+ ;;
+esac
+exit 1