oh-my-fish/oh-my-fish.fish
2013-11-20 06:05:27 -02:00

97 lines
2.4 KiB
Fish
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

###
# Helper functions
###
function _test_dir
set -l path $argv[1]
set -l paths $argv[2]
return (test -d $path; and not contains $path $paths)
end
function _fish_add_plugin
set -l plugin $argv[1]
set -l plugin_path "plugins/$plugin"
if _test_dir $fish_path/$plugin_path $fish_function_path
set fish_function_path $fish_path/$plugin_path $fish_function_path
end
if _test_dir $fish_custom/$plugin_path $fish_function_path
set fish_function_path $fish_custom/$plugin_path $fish_function_path
end
end
function _fish_add_completion
set -l plugin $argv[1]
set -l completion_path "plugins/$plugin/completions"
if test -d $fish_path/$completion_path
set fish_complete_path $fish_path/$completion_path $fish_complete_path
end
if test -d $fish_custom/$completion_path
set fish_complete_path $fish_custom/$completion_path $fish_complete_path
end
end
function _fish_source_plugin_load_file
set -l plugin $argv[1]
set -l load_file_path "plugins/$plugin/$plugin.load"
if test -e $fish_path/$load_file_path
. $fish_path/$load_file_path
end
if test -e $fish_custom/$load_file_path
. $fish_custom/$load_file_path
end
end
function _fish_load_theme
if _test_dir $fish_path/themes/$fish_theme $fish_function_path
set fish_function_path $fish_path/themes/$fish_theme $fish_function_path
end
if _test_dir $fish_custom/themes/$fish_theme $fish_function_path
set fish_function_path $fish_custom/themes/$fish_theme $fish_function_path
end
end
###
# Configuration
###
# Set fish_custom to the path where your custom config files
# and plugins exists, or else we will use the default custom.
if not set -q fish_custom
set -g fish_custom $fish_path/custom
end
# Extracting user's functions will be added later.
set user_function_path $fish_function_path[1]
set -e fish_function_path[1]
# Add all functions
if not contains $fish_path/functions/ $fish_function_path
set fish_function_path $fish_path/functions/ $fish_function_path
end
# Add all defined plugins
for plugin in $fish_plugins
_fish_add_plugin $plugin
_fish_add_completion $plugin
_fish_source_plugin_load_file $plugin
end
# Load user defined theme
_fish_load_theme $fish_theme
# Source all files inside custom folder
for config_file in $fish_custom/*.load
. $config_file
end
# Re-adding user's functions so they have the highest priority
set fish_function_path $user_function_path $fish_function_path