]> git.phdru.name Git - dotfiles.git/commitdiff
mc.menu refactoring: extract a compressed file
authorOleg Broytman <phd@phdru.name>
Sat, 17 Jan 2015 18:35:20 +0000 (21:35 +0300)
committerOleg Broytman <phd@phdru.name>
Sat, 17 Jan 2015 18:35:20 +0000 (21:35 +0300)
.mc/menu

index 78d4a8f93cafc32b2b30741b300c7e3511098e9f..95cf0cd555854476436af9b90a9150692cc75234 100644 (file)
--- 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