bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#69085: 29.2; Tramp: Extend tramp-make-copy-program-file-name via tra


From: Sean Devlin
Subject: bug#69085: 29.2; Tramp: Extend tramp-make-copy-program-file-name via tramp-methods
Date: Mon, 12 Feb 2024 16:51:35 -0500

Hi Michael,

On Feb 12, 2024, at 4:14 PM, Michael Albinus <michael.albinus@gmx.de> wrote:

Sean Devlin <spd@toadstyle.org> writes:

Hi folks,

Hi Sean,

This is a feature request.

Tramp lets you define a method for out-of-band file copying with the
tramp-methods keys tramp-copy-program, tramp-copy-args, and so on.

Currently, there is no way to customize the format of remote file
paths. The function tramp-make-copy-program-file-name is responsible for
this job, and it is hard-coded to format files as USER@HOST:FILE.

No. USER@HOST:FILE is only taken if the remote file name contains a
user. Otherwise, it takes
HOST:FILE.

You’re correct, my mistake.


I was working on a custom Tramp method, and I ran into problems setting
up OOB copying due to this limitation.

It would be great if there were a key you could set in tramp-methods to
override this logic. For example, maybe something like:

(tramp-copy-format-file-name my-tramp-make-copy-program-file-name)

Where my-tramp-make-copy-program-file-name is a function taking a vector
as input and returning a string of the formatted file name (similar to
tramp-make-copy-program-file-name).

Alternately, maybe a format string (or something similar to
tramp-login-args/tramp-copy-args) would be sufficient. In my case, I
just need to add a constant prefix to the remote file name, so a format
string would be fine.

Could you pls show your custom method spec, and what
tramp-copy-format-file-name returns for it?

Tramp-copy-format-file-name was just a proposal for how this feature might
work; it doesn’t exist in my own custom method spec.

The copy parameters for my method look like so:

(defconst tramp-mymethod
  '("mymethod"
    ...

    (tramp-copy-program “my-copy-program")
    (tramp-copy-args
     ((“-id" "%h")))))

Invocations of the copy program look like:

my-copy-program -id HOST SRC-FILE DEST-FILE

The HOST is not a DNS name in this case; instead, it’s an identifier for a sort of
abstract container.

For SRC-FILE and DEST-FILE, “remote” file paths just have a fixed prefix string,
i.e. it’s not dependent on the “host” name or the user.

So all I really need is a way to format “remote” file paths like:

(format "myprefix:%s" localname)

The current hack I use to implement this is to advise tramp-make-copy-file-name
as described in my other message.

Thanks for your help!


Thanks!

Best regards, Michael.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]