Ticket #2822 (new enhancement)
allow panelizing VFS where possible
Reported by: | zooloo | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Future Releases |
Component: | mc-vfs | Version: | master |
Keywords: | VFS, panelize, fish, FTP | Cc: | |
Blocked By: | Blocking: | ||
Branch state: | no branch | Votes for changeset: |
Description
mc should allow panelizing (C-x !) in non-local file systems where the underlying protocol provides some means of recursive listing.
There are cases like FTP or fish where this would be perfectly possible, and it would be very useful. To give an example, with large repositories containing myriads of mostly irrelevant files spread accross subdirectories, panelize would allow to download only files that match certain criteria rather than the entire directory tree.
Note: See
TracTickets for help on using
tickets.
I realize that my suggestion was short-sighted, especially so regarding FTP. I had only 'find' commands in mind, the idea being to simulate 'find' acting on locally cached recursive directory listings. However, other nice panelize commands, e. g. 'grep -rl', would require all files to be fully transferred, so there would not generally be a performance gain. Even though, it would be great to have *some* way to select remote files accross subdirectories. (Think of fetching 20 GiB in order to get hold of a few dozen 1 MiB files.)
Fish, on the other hand, does allow remote shell command execution beyond regular FISH_COMMAND equivalents. Instead of blocking all non-local panelizing attempts, why not leave the decision up to the server, along the lines of
#NOFISH
panelize_command && echo '### 200'
If (a) the server understands panelize_command and returns proper output, then use it, otherwise either (b) make panelize fail or (c) fetch copies and run panelize_command locally on them (the resulting paths then should be translated back to show up as if they were on the server).
The user could choose between (b) and (c) with a checkbox in the panelize dialog or, alternatively, at run time in a warning that pops up when (a) fails.