Subject: bug#20384: 24.5; feature suggestion: in dired-mode, "Z" on a directory should create a tarball or zip file

From: Eric Hanchrow <[email-masked]>
Date: Mon, 20 Apr 2015 16:54:50 +0000

I just ran dired, put point on the name of a subdirectory, and hit Z
(dired-do-compress), hoping that maybe Emacs would offer to create a
compressed tarball or zip file out of the directory.  Alas, it simply
said "gzip: /private/tmp/rs5rack12.2015-04-19.1109PDT is a directory".

In GNU Emacs 24.5.1 (x86_64-apple-darwin14.3.0, NS apple-appkit-1347.57)
 of 2015-04-10 on Eric-Hanchrows-iMac.local
Repository revision: f8bb8c4045e94290aa564c38215e5ea5552ae778
Windowing system distributor `Apple', version 10.3.1347
Configured using:
 `configure --with-ns'

Important settings:
  locale-coding-system: utf-8-unix

Major mode: Dired by date

Minor modes in effect:
  global-hl-line-mode: t
  diff-auto-refine-mode: t
  projectile-global-mode: t
  projectile-mode: t
  global-auto-revert-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  pyvenv-mode: t
  ido-everywhere: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
~
/tmp
Deleting...done
z is undefined
Z runs the command dired-do-compress
Compress or uncompress rs5rack12.2015-04-19.1109PDT? (y or n) y
Compressing /private/tmp/rs5rack12.2015-04-19.1109PDT...
gzip ("-f" "/private/tmp/rs5rack12.2015-04-19.1109PDT")
gzip: /private/tmp/rs5rack12.2015-04-19.1109PDT is a directory
Failed to compress/private/tmp/rs5rack12.2015-04-19.1109PDT

Load-path shadows:
/Users/erichanchrow/.emacs.d/elpa/edit-list-20100930.743/edit-list hides
/Users/erichanchrow/.emacs.d/lisp/edit-list
/Users/erichanchrow/.emacs.d/elpa/browse-kill-ring-20150104.1237/browse-kill-ring
hides /Users/erichanchrow/.emacs.d/lisp/browse-kill-ring

Features:
(shadow sort mail-extr emacsbug sendmail dired-aux wdired ffap dabbrev
cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs ag vc-svn find-dired s ucs-normalize misearch
multi-isearch company-files company-oddmuse company-keywords
company-etags company-gtags company-dabbrev-code company-dabbrev
company-cmake company-xcode company-clang company-eclim company-template
company-css company-nxml company-bbdb vc vc-dispatcher align flyspell
ispell whitespace markdown-mode noutline outline smerge-mode eieio-opt
speedbar sb-image ezimage dframe help-macro iedit-lib rect tar-mode
pcase autoload lisp-mnt mule-util mm-archive network-stream starttls
url-cache url-handlers finder-inf hl-line protbuf gist gh-gist gh-oauth
gh-api logito gh-cache pcache gh-auth gh-common gh-url url-http tls url
url-proxy url-privacy url-expand url-methods url-history mailcap
url-auth url-cookie url-domsuf url-gw gh-profile timezone eieio-base
magit-key-mode magit view epa epg diff-mode git-rebase-mode
git-commit-mode log-edit easy-mmode message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log vc-git
projectile dash thingatpt derived autorevert filenotify elisp-slime-nav
paste-to-dropbox path ssh server warnings saveplace url-util url-parse
url-vars find-func ibuf-ext ibuf-macs ibuffer tramp-cache tramp-sh tramp
tramp-compat auth-source gnus-util mm-util mail-prsvr password-cache
tramp-loaddefs trampver shell pcomplete format-spec advice recentf
tree-widget dired-x dired perl-extras perl-mode autoinsert cl-macs
yasnippet help-mode cl gv highlight-indentation flymake eldoc company
edmacro kmacro help-fns elpy pyvenv elpy-refactor python json ido grep
compile comint ansi-color files-x etags ring cus-edit cus-start cus-load
wid-edit eredis-autoloads eieio byte-opt bytecomp byte-compile cl-extra
cl-loaddefs cl-lib cconv eieio-core go-mode-autoloads logito-autoloads
info easymenu puppetfile-mode-autoloads package epg-config time rx
midnight time-date tooltip electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process cocoa ns
multi-tty emacs)

Memory information:
((conses 16 979592 128965)
 (symbols 48 50773 0)
 (miscs 40 8158 3676)
 (strings 32 149573 5241)
 (string-bytes 1 3812416)
 (vectors 16 68756)
 (vector-slots 8 1912031 53995)
 (floats 8 769 2914)
 (intervals 56 86484 2838)
 (buffers 960 79))