mirror of
https://github.com/jorgebucaran/fisher
synced 2024-11-19 09:25:40 +00:00
9a4f0f0650
* 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.
58 lines
1.4 KiB
Fish
58 lines
1.4 KiB
Fish
set -l cmd awk
|
|
set -l fishfile $DIRNAME/fixtures/fishfile
|
|
|
|
function -S setup
|
|
set -g fisher_alias "$cmd=A,B"
|
|
|
|
function fisher_$cmd
|
|
if not set -q argv[1]
|
|
echo usage:...
|
|
return 1
|
|
end
|
|
awk $argv
|
|
end
|
|
end
|
|
|
|
function -S teardown
|
|
functions -e fisher_$cmd
|
|
end
|
|
|
|
test "read a fishfile using --file"
|
|
(fisher --file=$fishfile) = foo bar baz github/foo/bar
|
|
end
|
|
|
|
test "fisher --cache=base retrieves plugin names in the cache"
|
|
(fisher --cache=base) = (
|
|
for file in $fisher_cache/*
|
|
basename $file
|
|
end)
|
|
end
|
|
|
|
test "evaluate commands"
|
|
(fisher $cmd) = usage:...
|
|
end
|
|
|
|
test "evaluate commands w/ standard input"
|
|
(echo "foo bar baz" | fisher $cmd '{ print $2 }' | xargs) = "bar"
|
|
end
|
|
|
|
test "display version information"
|
|
(fisher --version | cut -d " " -f3) = (sed 1q $fisher_home/VERSION)
|
|
end
|
|
|
|
test "evaluate \$fisher_alias=<command=alias[,...]> as aliases"
|
|
(fisher A; fisher B) = (fisher $cmd; fisher $cmd)
|
|
end
|
|
|
|
test "display usage"
|
|
(fisher | sed 1q) = "usage: fisher <command> [<options>] [--version] [--help]"
|
|
end
|
|
|
|
test "display help information about 'help' at the bottom"
|
|
(fisher | tail -n2 | xargs) = "Use fisher help -g to list guides and other documentation. See fisher help <command or concept> to access a man page."
|
|
end
|
|
|
|
test "display basic help information about available commands"
|
|
(fisher | sed -E 's/ +//' | grep "^$cmd\$")
|
|
end
|