From 2c0a08c3c9c4f9daa2733ef49ce960d053c4ad7d Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Sat, 17 Jan 2015 21:35:20 +0300 Subject: [PATCH] mc.menu refactoring: extract a compressed file --- .mc/menu | 54 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/.mc/menu b/.mc/menu index 78d4a8f..95cf0cd 100644 --- a/.mc/menu +++ b/.mc/menu @@ -323,6 +323,36 @@ N Create a directory for the other archive esac exec mkdir "$D" ++ f \.(bz2|gz|lz|lzma|7z|xz|tar|zip|ZIP|rar|RAR)$ & t r +x Extract a compressed file + case %f in + *.bz2) P="bzip2 -d";; + *.gz) P="gzip -d";; + *.lz) P="lzip -d";; + *.lzma) P="lzma -d";; + *.7z) P="7z -d";; + *.xz) P="xz -d";; + *.tar) P="tar xvpf";; + *.zip|*.ZIP) P="uzip";; + *.rar|*.RAR) P="rar x -y";; + esac + exec $P %f + ++ F \.(bz2|gz|lz|lzma|7z|xz|tar|zip|ZIP|rar|RAR)$ & T r +x Extract another compressed file + case %F in + *.bz2) P="bzip2 -cd";; + *.gz) P="gzip -cd";; + *.lz) P="lzip -cd";; + *.lzma) P="lzma -cd";; + *.7z) P="7z -cd";; + *.xz) P="xz -cd";; + *.tar) P="tar xvpf";; + *.zip|*.ZIP) P="uzip";; + *.rar|*.RAR) P="rar x -y";; + esac + exec $P %D/%F + + f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.Z$ | f \.tar\.bz2$ & t r x Extract the contents of a compressed tar file unset PRG @@ -379,38 +409,14 @@ X Extract the contents of an other compressed tar file esac $PRG %D/%F | tar xvf - -+ t r & f \.tar$ -u Extract from tar - exec tar xpvf %f - -+ t r & f \.(zip|ZIP)$ -u Extract from zip - exec unzip %f - + t r & f \.(zip|ZIP)$ y Extract from zip with recoded filenames exec unzip.py %f -+ t r & f \.(rar|RAR)$ -u Extract from rar - exec unrar x -y %f - -+ T r & F \.tar$ -u Extract from other tar - exec tar xpvf %D/%F - -+ T r & F \.(zip|ZIP)$ -u Extract from other zip - exec unzip %D/%F - + T r & F \.(zip|ZIP)$ y Extract from other zip with recoded filenames exec unzip.py %D/%F -+ T r & F \.(rar|RAR)$ -u Extract from other rar - exec unrar x -y %D/%F - + t r v View via mailcap exec see %f -- 2.39.5