mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2025-02-09 14:29:30 +08:00
49dda5c2f7
This updates omf plugin to new architecture, moving functions to `functions` directory. It also revamps the separation of concerns between CLI and underlying implementations, organizing them into directories, whose are autoloaded in plugin startup.
78 lines
2.0 KiB
Fish
78 lines
2.0 KiB
Fish
function __omf.packages.sort
|
|
for package in (echo $argv | tr ' ' '\n' | sort); echo $package; end
|
|
end
|
|
|
|
function __omf.packages.builtin
|
|
echo "omf"
|
|
echo "fish-spec"
|
|
end
|
|
|
|
function __omf.packages.list -a type
|
|
set -l list
|
|
|
|
test "$type" = "--theme"; or for package in (basename -a {$OMF_CONFIG,$OMF_PATH/db}/pkg/*)
|
|
contains $package (__omf.packages.builtin); or set list $list $package
|
|
end
|
|
|
|
test "$type" = "--plugin"; or for package in (basename -a {$OMF_CONFIG,$OMF_PATH/db}/themes/*)
|
|
set list $list $package
|
|
end
|
|
|
|
__omf.packages.sort $list
|
|
end
|
|
|
|
function __omf.packages.list.available -a type
|
|
set -l list
|
|
|
|
test "$type" = "--theme"; or for package in (basename -a $OMF_PATH/db/pkg/*)
|
|
contains $package (basename -a {$OMF_CONFIG,$OMF_PATH}/pkg/*); or set list $list $package
|
|
end
|
|
|
|
test "$type" = "--plugin"; or for package in (basename -a $OMF_PATH/db/themes/*)
|
|
contains $package (basename -a {$OMF_CONFIG,$OMF_PATH}/themes/*); or set list $list $package
|
|
end
|
|
|
|
__omf.packages.sort $list
|
|
end
|
|
|
|
function __omf.packages.list.database -a type
|
|
set -l list
|
|
|
|
test "$type" = "--theme"; or for package in (basename -a $OMF_PATH/db/pkg/*)
|
|
set list $list $package
|
|
end
|
|
|
|
test "$type" = "--plugin"; or for package in (basename -a $OMF_PATH/db/themes/*)
|
|
set list $list $package
|
|
end
|
|
|
|
__omf.packages.sort $list
|
|
end
|
|
|
|
function __omf.packages.list.installed -a type
|
|
set -l list
|
|
|
|
test "$type" = "--theme"; or for package in (basename -a {$OMF_CONFIG,$OMF_PATH}/pkg/*)
|
|
contains $package (__omf.packages.builtin); or set list $list $package
|
|
end
|
|
|
|
test "$type" = "--plugin"; or for package in (basename -a {$OMF_CONFIG,$OMF_PATH}/themes/* 2>/dev/null)
|
|
set list $list $package
|
|
end
|
|
|
|
__omf.packages.sort $list
|
|
end
|
|
|
|
function omf.packages.list -a option type
|
|
switch "$option"
|
|
case "-a" "--available"
|
|
__omf.packages.list.available $type
|
|
case "-d" "--database"
|
|
__omf.packages.list.database $type
|
|
case "-i" "--installed"
|
|
__omf.packages.list.installed $type
|
|
case "*"
|
|
__omf.packages.list $type
|
|
end
|
|
end
|