oh-my-fish/functions/import.fish
Jorge Bucaran 5eb156f995 Fix bugs in new import command as discussed in oh-my-fish/pull/291
+ All `.load` files inside custom are sourced as usual.

+ Only set plugins set in `$fish_plugins` as imported. Works whether they are in `$fish_path` or `$fish_custom` as expected. The same for plugins.

+ `$fish_function_path` is not polluted.
2015-01-08 02:21:51 +09:00

49 lines
1.4 KiB
Fish

# NAME
# import - load libraries, plugins, themes, etc.
#
# SYNOPSIS
# import <path/library>[<path/library>..]
#
# DESCRIPTION
# Import libraries, plugins, themes, completions. Prepend existing
# user custom/<library> directories to the path to allow users to
# override specific functions in themes/plugins.
#
# NOTES
# $fish_path and $fish_custom point to oh-my-fish home and the user
# dotfiles folder respectively. Both globals are usually configured
# in ~/.config/fish/config.fish
#
# EXAMPLES
# import plugins/dpaste themes/bobthefish
# import plugins/{cask,brew,django}
#
# AUTHORS
# Jorge Bucaran <jbucaran@me.com>
#
# SEE ALSO
# functions/_prepend_path.fish
# functions/_prepend_tree.fish
#
# v.0.1.0
#/
function import -d "Load libraries, plugins, themes, etc."
for library in $argv
# Prepend plugins, themes and completions, traversing library
# trees and prepending directories with fish code.
_prepend_tree $fish_path/$library
_prepend_tree $fish_custom/$library
_prepend_path $fish_path/$library/completions -d fish_complete_path
# Set path to load files.
set -l path $library/(basename $library).load
# Source each plugin, theme, etc., configuration load file.
for load in $fish_path/$path $fish_custom/$path
if [ -e $load ]
. $load
end
end
end
end