fisher/man/man5/fisher-fishfile.md
Jorge Bucaran 9a4f0f0650
Fisherman v0.2.0
* Improved README, added links to screencasts, updated
documentation with new changes and fixed other typos and
composition errors.

* Removed `fisher update --cache` in favor of
`fisher --cache | fisher update` and
`fisher uninstall --all` in favor of
`fisher --cache | fisher uninstall`.

* Fisherman does not move initialization / configuration
files following the convention `name`.config.fish to
`$fisher_config/functions`, but to `$fisher_config/conf.d`
now and evaluates  each `*.config.fish` inside at shell
start as usual. Closes #13.

* Added `fisher --cache[=base]` option to retrieve contents
in `$fisher_cache`, eliminating flaky usage of `find(1)`.
Closes #11.

* Fisherman now generates information about plugins installed
via custom URLs. For the description, a shortened version of
the URL is used. For the URL the full URL is used. For tags,
the URL is fuzzily checked and tags such as _theme_, _plugin_,
_config_ and _omf_ are added. The tag _orphan_ is added by
default as well. Finally, the author is generated by
retrieving the e-mail or username of the author of the
first commit in the plugin's repository. Closes #9 and #14.

* Changed `--path-in-cache` to `--translate.` This function
translates an name or supported URL/URL variation into a path
inside `$fisher_cache`. This allows you to treat plugins
installed via custom URLs almost like regular plugins if they
are installed. Closes #8.

* Fixed a bug with `mktemp` failing on some systems.
Closes #7. Thanks @tobywf.

* Added [CODE_OF_CONDUCT][code_of_conduct]. Closes #6.

* Fisherman can now unload themes within the same shell,
without having to restart the session. Closes #5.

* Fisherman can now load themes within the same shell,
without having to restart the session using `exec fish`.
Shoddy themes, for example those failing to declare global
variables with the `-g` flag still require the session to
be reset. See [**related**][bobthefish-19]. Closes #4.

* Move `getopts` implementation to `share/getopts.awk`.
Closes #3.

* Support dots inside URIs in `fisher --validate`.
Closes #2.
2016-01-05 06:05:11 +09:00

1.7 KiB

fisher-fishfile(5) -- Fishfile Format

SYNOPSIS

A fishfile lets you share plugin configurations across multiple installations, allows plugins to declare dependencies, and prevent information loss in case of system failure.

Fisherman also keeps a user fishfile in $fisher_config/fishfile which is automatically updated as you install or uninstall plugins.

USAGE

Fishfiles are plain text, manifest files that list one or more plugins by their name, url or short url owner/repo.

Here is an example:

# my plugins
shark
fishtape

# other links
oh-my-fish/bobthefish

To read fishfiles use fisher --file=fishfile. This will read fishfile sequentially, writing its contents to the standard output. Oh My Fish! bundle files are supported as well.

If fishfile is null or an empty string, the global fishfile in $fisher_config/fishfile will be used. Use a dash - to force read from standard input.

PLUGINS

Plugins may declare any number of dependencies to other plugins in a fishfile at the root of their project.

By default, when Fisherman installs a plugin, it will also fetch and install its dependencies. If a dependency is already installed, it will not be updated as this could potentially break other plugins using an older version. For the same reason, uninstalling a plugin does not remove its dependencies.

To understand this behavior, it helps to recall the shell's single scope for functions. The lack of private functions means that, it is not possible to single-lock a specific dependency version. See also fisher(7)#{Flat Tree}.

SEE ALSO

fisher(1)
fisher help config
fisher(7) #{Flat Tree}