comparison lisp/package-admin.el @ 325:f2b5d7006b0a r21-0-60

Import from CVS: tag r21-0-60
author cvs
date Mon, 13 Aug 2007 10:47:35 +0200
parents 19dcec799385
children 03446687b7cc
comparison
equal deleted inserted replaced
324:8f2460f6e1f6 325:f2b5d7006b0a
121 ;; rest of command line follows 121 ;; rest of command line follows
122 package-admin-xemacs file destination))) 122 package-admin-xemacs file destination)))
123 123
124 (defun package-admin-install-function-mswindows (file pkg-dir buf) 124 (defun package-admin-install-function-mswindows (file pkg-dir buf)
125 "Install function for mswindows" 125 "Install function for mswindows"
126 (let ( (default-directory pkg-dir) ) 126 (let ((default-directory (file-name-as-directory pkg-dir)))
127 (call-process "djtar" nil buf t "-x" file) 127 (unless (file-directory-p default-directory)
128 )) 128 (make-directory default-directory t))
129 (call-process "djtar" nil buf t "-x" file)))
129 130
130 (defun package-admin-default-install-function (file pkg-dir buf) 131 (defun package-admin-default-install-function (file pkg-dir buf)
131 "Default function to install a package. 132 "Default function to install a package.
132 Install package FILENAME into directory PKG-DIR, with any messages output 133 Install package FILENAME into directory PKG-DIR, with any messages output
133 to buffer BUF." 134 to buffer BUF."
134 (let (filename) 135 (let* ((pkg-dir (file-name-as-directory pkg-dir))
135 (setq filename (expand-file-name file pkg-dir)) 136 (default-directory pkg-dir)
137 (filename (expand-file-name file)))
138 (unless (file-directory-p pkg-dir)
139 (make-directory pkg-dir t))
136 ;; Don't assume GNU tar. 140 ;; Don't assume GNU tar.
137 (if (shell-command (concat "gunzip -c " filename " | tar xvf -") buf) 141 (if (shell-command (concat "gunzip -c " filename " | tar xvf -") buf)
138 0 142 0
139 1) 143 1)
140 )) 144 ))
318 (let ((buf (get-buffer-create package-admin-temp-buffer)) 322 (let ((buf (get-buffer-create package-admin-temp-buffer))
319 (status 1) 323 (status 1)
320 start err-list 324 start err-list
321 ) 325 )
322 (setq pkg-dir (package-admin-get-install-dir 'unknown pkg-dir)) 326 (setq pkg-dir (package-admin-get-install-dir 'unknown pkg-dir))
323 ;; Insure that the current directory doesn't change 327 ;; Ensure that the current directory doesn't change
324 (save-excursion 328 (save-excursion
325 (set-buffer buf) 329 (set-buffer buf)
326 (setq default-directory pkg-dir) 330 ;; This is not really needed
331 (setq default-directory (file-name-as-directory pkg-dir))
327 (setq case-fold-search t) 332 (setq case-fold-search t)
328 (buffer-disable-undo) 333 (buffer-disable-undo)
329 (goto-char (setq start (point-max))) 334 (goto-char (setq start (point-max)))
330 (if (= 0 (setq status (funcall package-admin-install-function 335 (if (= 0 (setq status (funcall package-admin-install-function
331 file pkg-dir buf))) 336 file pkg-dir buf)))