This is a simple fish plugin to source all fish files in functions
, completions
, and conf.d
directories under the current directory. Use this plugin for testing your fish plugin. You can also source fish files in the config directory (usually ~/.config/fish
).
I changed the previous repo & command name "tsc.fish" to "source-fish" for avoiding conflict against the TypeScript compiler command "tsc".
Using fisher:
fisher install yo-goto/source-fish
Update
fisher update yo-goto/source-fish
USAGE:
source-fish [OPTION]
source-fish DIRECOTRIES...
OPTIONS:
-v, --version Show version info
-h, --help Show help
-p, --permit Source fish files without confirmation
-r, --recent Find recently modified files (within 1 hour) & source them
-a, --all Source all fish files under the current directory
-t, --test Source all fish files in the "test" folder
-c, --config Source fish files in the config directory
If your current directory structure is like this, source-fish
finds all fish files in comptions
, functions
and conf.d
directories, and then source them at once. (My ggl.fish plugin directory structure ↓)
.
├── CHANGELOG.md
├── LICENSE
├── README.md
├── completions
│ ├── fin.fish
│ └── ggl.fish
├── conf.d
│ └── ggl.fish
└── functions
├── fin.fish
└── ggl.fish
❯ source-fish
Current: /Users/userName/Documents/ALL-Repo/ggl.fish
Source fish files in this project? [Y/n]: y
-->completed: ./functions/ggl.fish
-->completed: ./functions/fin.fish
-->completed: ./completions/ggl.fish
-->completed: ./completions/fin.fish
-->completed: ./conf.d/ggl.fish
You can also source all fish files inside the specific directories under the current directory using arguments. After source-fish
, use the Tab key to show auto-suggestions.
❯ source-fish functions/ conf.d/
found fish files:
./functions/ggl.fish
./functions/fin.fish
./conf.d/ggl.fish
Source these fish files? [Y/n]: y
-->complete: ./functions/ggl.fish
-->complete: ./functions/fin.fish
-->complete: ./conf.d/ggl.fish
From v0.2.0, you can use "permit" option with -p
or --permit
option flags. With this option, you can source fish files immediatly.
# default source
❯ source-fish -p
-->completed: ./functions/source-fish.fish
-->completed: ./completions/source-fish.fish
# for test directory
❯ source-fish -tp
-->completed: ./test/mytest.fish
-->completed: ./test/simple.fish
-->completed: ./tests/bool.fish
-->completed: ./tests/numtest.fish
-->completed: ./tests/combi.fish
-->completed: ./tests/sometest.fish
# for recently modified files (within 1 hour)
❯ source-fish -rp
-->completed: ./tests/combi.fish
-->completed: ./functions/source-fish.fish
You can also source bulk fish files in the config direcotry (to check your config dir, use echo $__fish_config_dir
). To do so, use -c
or --config
option flag. In this option mode, you can interactively select a directory to source.
❯ source-fish -c
Config [r/recent | a/all | d/dir | e/exit]: d
Directory [t/top | c/conf | f/functons | p/completions | b/back | e/exit ]: p
Source? [y/yes | r/result&source | p/print | b/back | e/exit ]: p
-->found: /Users/roshi/.config/fish/completions/ggl.fish
-->found: /Users/roshi/.config/fish/completions/tide.fish
-->found: /Users/roshi/.config/fish/completions/fish_logo.fish
-->found: /Users/roshi/.config/fish/completions/source-fish.fish
-->found: /Users/roshi/.config/fish/completions/fishtape.fish
-->found: /Users/roshi/.config/fish/completions/fin.fish
-->found: /Users/roshi/.config/fish/completions/to.fish
Source? [y/yes | r/result&source | p/print | b/back | e/exit ]: r
-->completed: /Users/roshi/.config/fish/completions/ggl.fish
-->completed: /Users/roshi/.config/fish/completions/tide.fish
-->completed: /Users/roshi/.config/fish/completions/fish_logo.fish
-->completed: /Users/roshi/.config/fish/completions/source-fish.fish
-->completed: /Users/roshi/.config/fish/completions/fishtape.fish
-->completed: /Users/roshi/.config/fish/completions/fin.fish
-->completed: /Users/roshi/.config/fish/completions/to.fish
In the first question, you can select options to source directories. r/recent
finds reacently modified files (within 1 hour). a/all
finds all fish files in the config directory.
In the second question, you can check the selected fish files with p
or print
without sourcing. To source files and check the results at the same time, type y
or yes
. To source them without printing results, type q
or quiet
. To go back to select config, type b
or back
. Typing s
or source
results in sourcing fish files in the selected directory without printing results.