alphapapa / alphapapa/org-web-tools

org-web-tools-archive-view has a problem with "--auto-compress"

Aperta
#70 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Emacs Lisp
Stelle
713
Fork
32
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

In macOS I had the very same issue as #65, with `org-web-tools-archive-view`. Every time I use the function, this message appears,

```
Extraction of file failed: tar: Option -a is not permitted in mode -x
```

I could solve the problem by removing the `--auto-compress` flag and advising the new function instead of the original one.

Maybe this could be applied upstream if you find useful.

```elisp
(defun org-web-tools-archive-view-mod ()
"Open Zip file archive of web page.
Extracts to a temp directory and opens with
`browse-url-default-browser'. Note: the extracted files are left
on-disk in the temp directory."
(interactive)
(unless (executable-find "unzip")
(error "Can't find unzip command"))
(let* ((attach-dir (org-attach-dir t))
(files (org-attach-file-list attach-dir))
(file (if (= (length files) 1)
(car files)
(completing-read "Open attachment: "
(mapcar #'list files) nil t)))
(extension (file-name-extension file))
(archive-path (expand-file-name file attach-dir))
(temp-dir (make-temp-file "org-web-tools-view-archive-" 'dir)))
(with-temp-buffer
(unless (zerop (pcase extension
;; TODO: If/when we want to support only Emacs 26+, we
;; can use the `rx' matcher instead of `file-name-extension',
;; and easily test for e.g. ".tar.xz".
("zip" (call-process (executable-find "unzip") nil t nil
archive-path "-d" temp-dir))
;; Assume that if it's not a zip file, it's a tar archive
;; (`extension' will be just, e.g. "xz").
(_ (call-process (executable-find "tar") nil t nil
;; "--auto-compress"
"--extract"
"--directory" temp-dir
"--file" archive-path))))
(error "Extraction of file failed: %s" (buffer-string))))
(->> (directory-files temp-dir 'full-path (rx ".html" eos))
(-map #'org-web-tools-archive-view--escape-filename)
(--map (concat "file://" it))
(-map #'browse-url-default-browser))
(message "Files extracted to: %s" temp-dir)))

(advice-add #'org-web-tools-archive-view :override #'org-web-tools-archive-view-mod)
```

Best.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.