Function: tramp-adb-handle-file-local-copy

tramp-adb-handle-file-local-copy is a byte-compiled function defined in tramp-adb.el.gz.

Signature

(tramp-adb-handle-file-local-copy FILENAME)

Documentation

Like file-local-copy for Tramp files.

Source Code

;; Defined in /usr/src/emacs/lisp/net/tramp-adb.el.gz
(defun tramp-adb-handle-file-local-copy (filename)
  "Like `file-local-copy' for Tramp files."
  (with-parsed-tramp-file-name filename nil
    (unless (file-exists-p (file-truename filename))
      (tramp-compat-file-missing v filename))
    (let ((tmpfile (tramp-compat-make-temp-file filename)))
      (with-tramp-progress-reporter
	  v 3 (format "Fetching %s to tmp file %s" filename tmpfile)
	;; "adb pull ..." does not always return an error code.
	(unless
	    (and (tramp-adb-execute-adb-command
		  v "pull" (tramp-compat-file-name-unquote localname) tmpfile)
		 (file-exists-p tmpfile))
	  (ignore-errors (delete-file tmpfile))
	  (tramp-error
	   v 'file-error "Cannot make local copy of file `%s'" filename))
	(set-file-modes tmpfile (logior (or (file-modes filename) 0) #o0400)))
      tmpfile)))