aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/completions/emerge.fish
diff options
context:
space:
mode:
Diffstat (limited to 'share/completions/emerge.fish')
-rw-r--r--share/completions/emerge.fish55
1 files changed, 48 insertions, 7 deletions
diff --git a/share/completions/emerge.fish b/share/completions/emerge.fish
index a70e32cd..3fa5c368 100644
--- a/share/completions/emerge.fish
+++ b/share/completions/emerge.fish
@@ -4,14 +4,17 @@
function __fish_emerge_print_installed_pkgs --description 'Prints completions for installed packages on the system from /var/db/pkg'
if test -d /var/db/pkg
- find /var/db/pkg/ -type d | cut -d'/' -f5-6 | sort | uniq | sed 's/-[0-9]\{1,\}\..*$//' | sed -e '/^ *$/d'
+ find /var/db/pkg/ -type d | cut -d'/' -f5-6 | sort | uniq | \
+ sed 's/-[0-9]\{1,\}\..*$//' | sed -e '/^ *$/d'
return
end
end
function __fish_emerge_print_all_pkgs --description 'Prints completions for all available packages on the system from /usr/portage'
if test -d /usr/portage
- find /usr/portage/ -maxdepth 2 -type d | cut -d'/' -f4-5 | sed 's/^\(distfiles\|profiles\|eclass\).*$//' | sort | uniq | sed 's/-[0-9]\{1,\}\..*$//' | sed -e '/^ *$/d'
+ find /usr/portage/ -maxdepth 2 -type d | cut -d'/' -f4-5 | \
+ sed 's/^\(distfiles\|profiles\|eclass\).*$//' | sort | uniq | \
+ sed 's/-[0-9]\{1,\}\..*$//' | sed -e '/^ *$/d'
return
end
end
@@ -25,14 +28,46 @@ function __fish_emerge_use_installed_package --description 'Tests if emerge comm
return 1
end
+
+function __fish_emerge_print_all_pkgs_with_version_compare --description 'Print completions for all packages including the version compare if that is already typed'
+ set -l version_comparator (commandline --current-token | \
+ sgrep -o '^[\'"]*[<>]\?=\?' | \
+ 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
+
#########################
# Actions
-complete -c emerge -n '__fish_emerge_use_installed_package' -xua 'system\t"'(_ "All base system packages")'" world\t"'(_ "All packages in world")'" (__fish_emerge_print_installed_pkgs)\t"'(_ "Installed package")'"'
-complete -c emerge -n 'not __fish_emerge_use_installed_package' -xua 'system\t"'(_ "All base system packages")'" world\t"'(_ "All packages in world")'" (__fish_emerge_print_all_pkgs)\t"'(_ "Package")'"'
+complete -c emerge -n '__fish_emerge_use_installed_package' -xua \
+'system\t"'(_ "All base system packages")'" '\
+'world\t"'(_ "All packages in world")'" '\
+'(__fish_emerge_print_installed_pkgs)\t"'(_ "Installed package")'"'
+
+complete -c emerge -n 'not __fish_emerge_use_installed_package' -xua \
+'system\t"'(_ "All base system packages")'" '\
+'world\t"'(_ "All packages in world")'" '\
+'@world\t"'(_ "All packages in world")'" '\
+'@preserved-rebuild\t"'(_ 'Packages that are linked to preserved libs')'" '\
+'@module-rebuild\t"'(_ "Packages that contain kernel modules")'" '\
+'(__fish_emerge_print_all_pkgs_with_version_compare)'
+
complete -c emerge -l sync -d "Synchronize the portage tree"
complete -c emerge -l info -d "Get informations to include in bug reports"
complete -c emerge -s V -l version -d "Displays the version number of emerge"
-complete -c emerge -s h -l help -xa '""\t"'(_ "Usage overview of emerge")'" system\t"'(_ "Help on subject system")'" config\t"'(_ "Help on subject config")'" sync\t"'(_ "Help on subject sync")'"' -d "Displays help information for emerge"
+complete -c emerge -s h -l help -d "Displays help information for emerge" -xa \
+'""\t"'(_ "Usage overview of emerge")'" '\
+'system\t"'(_ "Help on subject system")'" '\
+'config\t"'(_ "Help on subject config")'" '\
+'sync\t"'(_ "Help on subject sync")'"'
+
complete -c emerge -s c -l clean -d "Remove packages that will not affect the functionality of the system"
complete -c emerge -l config -d "Run package specific actions needed to be executed after the emerge process"
complete -c emerge -l depclean -d "WARNING: Delete all packages that are neither deps nor in world"
@@ -54,7 +89,10 @@ complete -c emerge -s a -l ask -d "Prompt the user before peforming the merge"
complete -c emerge -s b -l buildpkg -d "Build a binary package additionally"
complete -c emerge -s B -l buildpkgonly -d "Only build a binary package"
complete -c emerge -s l -l changelog -d "Show changelog of package. Use with --pretend"
-complete -c emerge -l color -xa 'y\t"'(_ "Use colors in output")'" n\t"'(_ "Don't use colors in output")'"' -d "Toggle colorized output"
+complete -c emerge -l color -d "Toggle colorized output" -xa \
+'y\t"'(_ "Use colors in output")'" '\
+'n\t"'(_ "Don't use colors in output")'"'
+
complete -c emerge -l colums -d "Align output. Use with --pretend"
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"
@@ -78,7 +116,10 @@ complete -c emerge -s t -l tree -d "Show the dependency tree"
complete -c emerge -s k -l usepkg -d "Use binary package if available"
complete -c emerge -s K -l usepkgonly -d "Only use binary packages"
complete -c emerge -s v -l verbose -d "Run in verbose mode"
-complete -c emerge -l with-bdeps -xa 'y\t"'(_ "Pull in build time dependencies")'" n\t"'(_ "Don't pull in build time dependencies")'"' -d "Toggle build time dependencies"
+complete -c emerge -l with-bdeps -d "Toggle build time dependencies" -xa \
+'y\t"'(_ "Pull in build time dependencies")'" '\
+'n\t"'(_ "Don't pull in build time dependencies")'"'
+
# END Options
#########################