]> git.phdru.name Git - dotfiles.git/blobdiff - .mc/menu
mc.menu: only archive files, not directories
[dotfiles.git] / .mc / menu
index 3862c3ba73e6311c6bb2262aa256832a3f803388..660f475c45ca7dfa3f47eb5cd67062464dd1c00e 100644 (file)
--- a/.mc/menu
+++ b/.mc/menu
@@ -248,28 +248,28 @@ y  Compress the current subdirectory to zip with recoded filenames
    echo ../"$zip".zip created.
 
 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
-z  bzip2 the file/directory
+z  bzip2 the file
    exec bzip2 -9 %f.bz2 %f
 
 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
-z  gzip the file/directory
-   exec gzip -9 %f.gz %f
+z  gzip the file
+   exec gzip -9 %f
 
 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
-z  lzip the file/directory
-   exec lzip -9 %f.lz %f
+z  lzip the file
+   exec lzip -9 %f
 
 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
-z  lzma the file/directory
-   exec lzma -9 %f.lzma %f
+z  lzma the file
+   exec lzma -9 %f
 
 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
 z  7z the file/directory
-   exec 7z -9 %f.7z %f
+   exec 7z -9 %f
 
 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
-z  xz the file/directory
-   exec xz -9 %f.xz %f
+z  xz the file
+   exec xz -9 %f
 
 + ! f \.bz2$ & ! f \.gz$ & ! f \.lz$ & ! f \.lzma$ & ! f \.7z$ & ! f \.xz$ & ! f \.(zip|ZIP)$
 z  zip the file/directory
@@ -289,9 +289,23 @@ Y  zip these files/directories with recoded filenames
    ZIP=%{Enter zip name}
    exec zip.py "$ZIP" %s
 
-+ t r & f \.tar\.bz2$
-u  Extract from tar-bzip2
-   exec bzip2 -cd %f | tar xpvf -
++ f \.tar\.bz2$ | f \.tar\.gz$ | f \.tgz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.(zip|ZIP)$ | f \.(rar|RAR)$ | f \.7z$ | f \.xz$ & t r
+n  Create a directory for this archive
+   case %f in
+     *.tar.bz2)  D="`basename %f .tar.bz2`";;
+     *.tar.gz)   D="`basename %f .tar.gz`";;
+     *.tgz)      D="`basename %f .tgz`";;
+     *.tar.lz)   D="`basename %f .tar.lz`";;
+     *.tar.lzma) D="`basename %f .tar.lzma`";;
+     *.zip)      D="`basename %f .zip`";;
+     *.ZIP)      D="`basename %f .ZIP`";;
+     *.rar)      D="`basename %f .rar`";;
+     *.RAR)      D="`basename %f .RAR`";;
+     *.7z)       D="`basename %f .7z`";;
+     *.xz)       D="`basename %f .xz`";;
+   esac
+   exec mkdir "$D"
+
 + F \.tar\.bz2$ | F \.tar\.gz$ | F \.tgz$ | F \.tar\.lz$ | F \.tar\.lzma$ | F \.(zip|ZIP)$ | F \.(rar|RAR)$ | F \.7z$ | F \.xz$ & T r
 N  Create a directory for the other archive
    case %D/%F in
@@ -309,66 +323,100 @@ N  Create a directory for the other archive
    esac
    exec mkdir "$D"
 
-+ f \.tar\.gz$ | f \.tgz$ & t r
-u  Extract from tar-gzip
-   exec gzip -cd %f | tar xpvf -
-
-+ t r & f \.tar$
-u  Extract from tar
-   exec tar xpvf %f
++ 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
 
-+ t r & f \.(zip|ZIP)$
-u  Extract from zip
-   exec unzip %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
+   case %f in
+      *.tar.bz2)
+         PRG="bunzip2 -c"
+      ;;
+      *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
+         PRG="gzip -dc"
+      ;;
+      *.tar.lz)
+         PRG="lzip -dc"
+      ;;
+      *.tar.lzma)
+         PRG="lzma -dc"
+      ;;
+      *.tar.7z)
+         PRG="7za e -so"
+      ;;
+      *.tar.xz)
+         PRG="xz -dc"
+      ;;
+      *)
+      exit 1
+      ;;
+   esac
+   $PRG %f | tar xvf -
+
++ 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 an other compressed tar file
+   unset PRG
+   case %F in
+      *.tar.bz2)
+         PRG="bunzip2 -c"
+      ;;
+      *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
+         PRG="gzip -dc"
+      ;;
+      *.tar.lz)
+         PRG="lzip -dc"
+      ;;
+      *.tar.lzma)
+         PRG="lzma -dc"
+      ;;
+      *.tar.7z)
+         PRG="7za e -so"
+      ;;
+      *.tar.xz)
+         PRG="xz -dc"
+      ;;
+      *)
+      exit 1
+      ;;
+   esac
+   $PRG %D/%F | tar xvf -
 
 + t r & f \.(zip|ZIP)$
 y  Extract from zip with recoded filenames
    exec unzip.py %f
 
-+ t r & f \.7z$
-u  Extract from 7zip
-   exec 7zr x %f
-
-+ t r & f \.(rar|RAR)$
-u  Extract from rar
-   exec unrar x -y %f
-
-+ t r & f \.tar\.xz$
-u  Extract from tar-xz
-   exec xz -cd %f | tar xpvf -
-
-+ T r & F \.tar\.bz2$
-U  Extract from the other tar-bzip2
-   exec bzip2 -cd %D/%F | tar xpvf -
-
-+ F \.tar\.gz$ | F \.tgz$ & T r
-U  Extract from the other tar-gzip
-   exec gzip -cd %D/%F | tar xpvf -
-
-+ T r & F \.tar$
-U  Extract from the other tar
-   exec tar xpvf %D/%F
-
 + T r & F \.(zip|ZIP)$
-U  Extract from the other zip
-   exec unzip %D/%F
-
-+ T r & F \.(zip|ZIP)$
-Y  Extract from the other zip with recoded filenames
+y  Extract from other zip with recoded filenames
    exec unzip.py %D/%F
 
-+ T r & F \.(rar|RAR)$
-U  Extract from the other rar
-   exec unrar x -y %D/%F
-
-+ T r & F \.7z$
-U  Extract from 7zip
-   exec 7zr x %D/%F
-
-+ T r & F \.tar\.xz$
-U  Extract from tar-xz
-   exec xz -cd %D/%F | tar xpvf -
-
 + t r
 v  View via mailcap
    exec see %f