mirror of
https://github.com/jorgebucaran/fisher
synced 2024-11-05 12:00:17 +00:00
5dc1eea953
+ Add the ability to install plugins from Gists. You can distribute a very simple, one-single function plugin in the form of a Gist. Your users can install it using fisher install url and Fisherman will query the Gist using the GitHub API to get a list of the Gist files and use the name of the first identified *.fish file to name the plugin in your system. Since there is no formal way to name a Gist, and you may prefer to keep the "description" field for the actual description and not a name, Fisherman supports only one fish file per Gist. Closes #75. + Use command(1) when calling non-builtins. Thanks @daenney. Closes #79. + Add __fisher_plugin_can_enable to detect installing a prompt that is not the current one. Closes #78. + Remove the ability to install a plugin in a parent directory using .. or ../ or even worse, ../../ as well as other combinations that navigate to a parent directory. I find the use case odd at best, and more dangerous that useful. If you want to install a local plugin use the full path or a relative path, always top down. fisher install . or fisher install my/plugin or fisher install /Users/$USER/path/to/plugin. Closes #81.
45 lines
936 B
Fish
45 lines
936 B
Fish
set -l path $DIRNAME/.t-$TESTNAME-(random)
|
|
|
|
function -S setup
|
|
mkdir -p $path
|
|
touch $path/file
|
|
end
|
|
|
|
function -S teardown
|
|
rm -rf $path
|
|
end
|
|
|
|
test "$TESTNAME - Get a valid path"
|
|
"$path" = (__fisher_plugin_validate $path)
|
|
end
|
|
|
|
test "$TESTNAME - Get absolute path if not given a full path"
|
|
"$path" = (
|
|
pushd $path
|
|
__fisher_plugin_validate .
|
|
popd
|
|
)
|
|
end
|
|
|
|
test "$TESTNAME - Remove trailing slashes"
|
|
"$path" = (__fisher_plugin_validate $path/)
|
|
end
|
|
|
|
test "$TESTNAME - Clean up unusual paths"
|
|
"$path" = (
|
|
pushd $path/../../
|
|
__fisher_plugin_validate ./test/.//////(basename $path)
|
|
popd
|
|
)
|
|
end
|
|
|
|
test "$TESTNAME - Fail phoney paths"
|
|
-z (__fisher_plugin_validate /(random)/(random))
|
|
end
|
|
|
|
for invalid_path in ".." "../"
|
|
test "$TESTNAME - Do not allow to install '$invalid_path' like paths"
|
|
-z (__fisher_plugin_validate $invalid_path)
|
|
end
|
|
end
|