This probably means the user does not have python installed on their
system and we will be download the index every time the user runs
ls-remote.
A more sensitive, python-less solution to check file age since the last
time the file was modified should be more desirable.
delimited, awk-friendy format and put it in .cache/.index.
During the process, sort the data also. This way, don't need
to repeat the same process every time we run ls-remote.
Add completions for ls-remote with plugin name and info.
* Updated 🇷🇺 Russian docs (see changes in a70d48b)
* Minor wording fix ("use ... using")
* Reflected changes from a0805bb and efc1946; added links to fish and fishfile
* Removed upgrade instructions (see #241)
Installing with npm works 9 out of 10 times. This may be due to
the post-install hook hack set in order to move fisher.fish into
the user functions directory.
The simplest and best way to install fisherman is by putting the
fisher.fish file in your functions directory.
when updating the index for ls-remote.
Allow ls-remote to accept a key and always print record if it
matches the plugin's name. Works with the format string too.
Close#234, #236, #238
Running fisher ls-remote will query the GitHub API for all the
repos in the fisherman org and retrieve the JSON file which is
saved to .cache/fisherman/.index.json.
This file is updated every half and hour whenever you run the
command again. This number is subject to change in the future
as we learn how people are actually using this option.
The ls-remote option can take --format=<fmt string> option used
to customize the list output.
By default, it shows only names and breaks it into columns as
wide as your terminal window.
<fmt string> can contain \t tabs or \n line breaks and one or
more of the following variables with information about plugins.
* %name
* %info
* %url
* %stars
ln -F is relevant only when the target is a directory, in which
case `ln` will delete the directory so that the link can occur.
In fisherman, we use links in only two places:
1. Linking files into .config/fish/{functions,completions}, and
2. Linking local plugins into the .config/fisherman
If my calculations are correct, we don't need -F in either case.
Both {functions/completions} never contain directories, so (1)
is probably safe. The fisherman config only contains directories
to installed plugins, so not using -F actually prevents the user
from overwriting a plugin currently installed with a local plugin.
The previous implementation was creating a nested copy of
the target directory (updated plugin) inside the cached
copy.
After some research, I believe there are two things we
can do here:
1. Remove the target and create a new copy or
2. Use the following syntax
cp -rf src_dir/. target_dir
which seems to do what we want, overwrite target with
source entirely.