Function: package-tar-file-info
package-tar-file-info is a byte-compiled function defined in
package.el.gz.
Signature
(package-tar-file-info)
Documentation
Find package information for a tar file.
The return result is a package-desc.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(defun package-tar-file-info ()
"Find package information for a tar file.
The return result is a `package-desc'."
(cl-assert (derived-mode-p 'tar-mode))
(let* ((dir-name (named-let loop
((filename (tar-header-name (car tar-parse-info))))
(let ((dirname (file-name-directory filename)))
;; The first file can be in a subdir: look for the top.
(if dirname (loop (directory-file-name dirname))
(file-name-as-directory filename)))))
(desc-file (package--description-file dir-name))
(tar-desc (tar-get-file-descriptor (concat dir-name desc-file))))
(unless tar-desc
(error "No package descriptor file found"))
(with-current-buffer (tar--extract tar-desc)
(unwind-protect
(or (package--read-pkg-desc 'tar)
(error "Can't find define-package in %s"
(tar-header-name tar-desc)))
(kill-buffer (current-buffer))))))