mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-30 06:03:49 +08:00
44e2c28255
* revisit gentoo-related completions - add completion for emaint - improve completion for emerge still incomplete, but an impovement regardless - improve completion for equery - add gentoo/portage-related auxiliary functions * fix spelling * remove trailing '.' * remove old '_' invocation and capitalize descriptions * add number-completion * remove trailing '.' * shorter descriptions * replace sed with fish-builtin and drop deduplication * batch change capitalization (lower case) * indent equery descriptions * batch change capitalization (upper case)
177 lines
6.4 KiB
Fish
177 lines
6.4 KiB
Fish
#function __fish_emerge_print_all_pkgs_with_version_compare -d 'Print completions for all packages including the version compare if that is already typed'
|
|
# set -l version_comparator (commandline -t | string match -r '^[\'"]*[<>]\?=\?' | \
|
|
# sed -r 's/^[\'"]*(.*)/\1/g')
|
|
# set -l sedstring
|
|
#
|
|
# if set -q $version_comparator
|
|
# set sedstring 's/^(.*)/\1\tPackage/g'
|
|
# else
|
|
# set sedstring 's/^(.*)/'$version_comparator'\1\tPackage/g'
|
|
# end
|
|
#
|
|
# __fish_emerge_print_all_pkgs | sed -r $sedstring
|
|
#end
|
|
|
|
function __fish_emerge_print_sets
|
|
for s in '@'(emerge --list-sets)
|
|
switch $s
|
|
case @profile
|
|
printf '%s\t%s\n' $s 'set of packages deemed necessary for your system to run properly'
|
|
case @selected-packages
|
|
printf '%s\t%s\n' $s 'packages listed in /var/lib/portage/world'
|
|
case @selected-sets
|
|
printf '%s\t%s\n' $s 'sets listed in /var/lib/portage/world_sets'
|
|
case @selected
|
|
printf '%s\t%s\n' $s 'encompasses both the selected-packages and selected-sets sets'
|
|
case @system
|
|
printf '%s\t%s\n' $s 'set of packages deemed necessary for your system to run properly'
|
|
case @world
|
|
printf '%s\t%s\n' $s 'encompasses the selected, system and profile sets'
|
|
case '*'
|
|
echo $s
|
|
end
|
|
end
|
|
end
|
|
|
|
# TODO <ebuild|tbz2file|file|@set|atom>...
|
|
function __fish_emerge_possible_args
|
|
if __fish_contains_opt check-news -s h help list-sets metadata regen -s r resume \
|
|
-s s search -s S searchdesc sync -s V version
|
|
return
|
|
# TODO deselect=y
|
|
else if __fish_contains_opt config -s c depclean info -s P prune -s C unmerge
|
|
__fish_emerge_print_sets
|
|
__fish_portage_print_installed_pkgs
|
|
# TODO deselect=n
|
|
else
|
|
__fish_emerge_print_sets
|
|
__fish_portage_print_available_pkgs
|
|
end
|
|
end
|
|
|
|
complete -c emerge -xa "(__fish_emerge_possible_args)"
|
|
|
|
#########################
|
|
# Actions #
|
|
#########################
|
|
complete -c emerge -l check-news
|
|
complete -c emerge -l clean
|
|
complete -c emerge -l config
|
|
complete -c emerge -s c -l depclean
|
|
complete -c emerge -l deselect
|
|
complete -c emerge -s h -l help
|
|
complete -c emerge -l info
|
|
complete -c emerge -l list-sets
|
|
complete -c emerge -l metadata
|
|
complete -c emerge -s P -l prune
|
|
complete -c emerge -l regen
|
|
complete -c emerge -s r -l resume
|
|
complete -c emerge -s s -l search
|
|
complete -c emerge -s S -l searchdesc
|
|
complete -c emerge -l sync
|
|
complete -c emerge -s C -l unmerge
|
|
complete -c emerge -s V -l version
|
|
|
|
#########################
|
|
# Options #
|
|
#########################
|
|
complete -c emerge -s A -l alert -d "Add a terminal bell character ('\a') to all interactive prompts"
|
|
#complete -c emerge -l alphabetical -d "Sort flag lists alphabetically"
|
|
complete -c emerge -s a -l ask -d "Prompt the user before peforming the merge"
|
|
# ask-enter-invalid
|
|
# autounmask
|
|
# autounmask-backtrack <yn>
|
|
# autounmask-continue
|
|
# autounmask-only
|
|
# autounmask-unrestricted-atoms
|
|
# autounmask-keep-keywords
|
|
# autounmask-keep-masks
|
|
# autounmask-write
|
|
complete -c emerge -l backtrack
|
|
complete -c emerge -s b -l buildpkg -d "Build a binary pkg additionally"
|
|
# buildpkg-exclude
|
|
complete -c emerge -s B -l buildpkgonly -d "Only build a binary pkg"
|
|
# changed-deps
|
|
complete -c emerge -s U -l changed-use
|
|
complete -c emerge -s l -l changelog -d "Show changelog of pkg. Use with --pretend"
|
|
complete -c emerge -l color -d "Colorized output" \
|
|
-xa "y n"
|
|
complete -c emerge -l columns -d "Align output. Use with --pretend"
|
|
complete -c emerge -l complete-graph
|
|
# complete-graph-if-new-use <yn>
|
|
# complete-graph-if-new-ver <yn>
|
|
# config-root DIR
|
|
complete -c emerge -s d -l debug -d "Run in debug mode"
|
|
complete -c emerge -s D -l deep -d "Consider the whole dependency tree"
|
|
# depclean-lib-check
|
|
# digest
|
|
# dynamic-deps <yn>
|
|
complete -c emerge -s e -l emptytree -d "Reinstall all world pkgs"
|
|
# exclude ATOMS
|
|
complete -c emerge -l exclude
|
|
# fail-clean
|
|
complete -c emerge -s f -l fetchonly -d "Only download the pkgs but don't install them"
|
|
complete -c emerge -s F -l fetch-all-uri -d "Same as --fetchonly and grab all potential files"
|
|
# fuzzy-search
|
|
complete -c emerge -s g -l getbinpkg -d "Download infos from each binary pkg. Implies -k"
|
|
complete -c emerge -s G -l getbinpkgonly -d "As -g but don't use local infos"
|
|
complete -c emerge -l ignore-default-opts -d "Ignore EMERGE_DEFAULT_OPTS"
|
|
# ignore-build-slot-operator-deps <yn>
|
|
# ignore-soname-deps <yn>
|
|
complete -c emerge -l jobs
|
|
complete -c emerge -l keep-going
|
|
# load-average
|
|
# misspell-suggestion
|
|
# newrepo
|
|
complete -c emerge -s N -l newuse -d "Include installed pkgs with changed USE flags"
|
|
complete -c emerge -l noconfmem -d "Disregard merge records"
|
|
complete -c emerge -s O -l nodeps -d "Don't merge dependencies"
|
|
complete -c emerge -s n -l noreplace -d "Skip already installed pkgs"
|
|
complete -c emerge -l nospinner -d "Disable the spinner"
|
|
# usepkg-exclude ATOMS
|
|
# rebuild-exclude ATOMS
|
|
# rebuild-ignore ATOMS
|
|
complete -c emerge -s 1 -l oneshot -d "Don't add pkgs to world"
|
|
complete -c emerge -s o -l onlydeps -d "Only merge dependencies"
|
|
# onlydeps-with-rdeps <yn>
|
|
# package-moves
|
|
# pkg-format
|
|
# prefix DIR
|
|
complete -c emerge -s p -l pretend -d "Display what would be done without doing it"
|
|
complete -c emerge -s q -l quiet -d "Use a condensed output"
|
|
# quiet-build
|
|
# quiet-fail
|
|
# quiet-repo-display
|
|
# quiet-unmerge-warn
|
|
# rage-clean
|
|
# read-news
|
|
# rebuild-if-new-slot
|
|
# rebuild-if-new-rev
|
|
# rebuild-if-new-ver
|
|
# rebuild-if-unbuilt
|
|
# rebuild-binaries
|
|
# rebuild-binaries-timestamp TIMESTAMP
|
|
# reinstall changed-use
|
|
# reinstall-atoms ATOMS
|
|
# root-deps
|
|
# search-index
|
|
# search-similarity PERCENTAGE
|
|
complete -c emerge -s w -l select
|
|
# selective
|
|
complete -c emerge -l skipfirst -d "Remove first pkg in resume list. Use with --resume"
|
|
# sync-module <glsa|news|profiles>
|
|
complete -c emerge -s t -l tree -d "Show the dependency tree"
|
|
# unordered-display
|
|
complete -c emerge -s u -l update
|
|
# use-ebuild-visibility
|
|
# useoldpkg-atoms ATOMS
|
|
complete -c emerge -s k -l usepkg -d "Use binary pkg if available"
|
|
complete -c emerge -s K -l usepkgonly -d "Only use binary pkgs"
|
|
complete -c emerge -s v -l verbose -d "Run in verbose mode"
|
|
# verbose-conflicts
|
|
# verbose-slot-rebuilds
|
|
complete -c emerge -l with-bdeps -d "Pull in build time dependencies" \
|
|
-xa "y n"
|
|
# with-bdeps-auto <yn>
|
|
# with-test-bdeps
|