aboutsummaryrefslogtreecommitdiffstats
path: root/src/_port
diff options
context:
space:
mode:
authorAljaž "g5pw" Srebrnič <a2piratesoft@gmail.com>2014-02-19 10:46:53 +0100
committerAljaž "g5pw" Srebrnič <a2piratesoft@gmail.com>2014-06-26 17:57:58 +0200
commit8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53 (patch)
tree205d8adc788c343b8ba4602b7e800982b3889538 /src/_port
parentExplicitly typeset arrays (diff)
downloadzsh-completions-8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53.tar
zsh-completions-8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53.tar.gz
zsh-completions-8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53.tar.bz2
zsh-completions-8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53.tar.lz
zsh-completions-8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53.tar.xz
zsh-completions-8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53.tar.zst
zsh-completions-8dc4b8a490a31f580fd2cfce1b7d99b5bc0c9a53.zip
Better port upgrade completion
When upgrading, pseudo-portnames can be used. Also, add upgrade options to completion choices.
Diffstat (limited to 'src/_port')
-rw-r--r--src/_port17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/_port b/src/_port
index 25e0077..e986b60 100644
--- a/src/_port
+++ b/src/_port
@@ -20,7 +20,7 @@ _port() {
typeset -A opt_args
local context state state_descr line
- local -a revupgrade_options select_options \
+ local -a upgrade_options revupgrade_options select_options \
actions pseudo_common pseudo_advanced port_prefix
port_prefix=$(which port | sed 's|/bin/port||')
@@ -51,6 +51,12 @@ _port() {
revupgrade_options=('--id-loadcmd-check:Run more checks against a special loadcommand in Mach-O binaries')
+ upgrade_options=(
+ '--force\:Ignore\ circumstances\ that\ would\ normally\ cause\ ports\ to\ be\ skipped\ \(e.g.\ not\ outdated\).' \
+ '--enforce-variants\:If\ the\ installed\ variants\ do\ not\ match\ those\ requested,\ upgrade\ even\ if\ the\ port\ is\ not\ outdated.' \
+ '--no-replace\:Do\ not\ replace\ one\ port\ with\ another\ according\ to\ the\ replaced_by\ field.' \
+ )
+
local cache_policy
zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
if [[ -z "$cache_policy" ]]; then
@@ -114,9 +120,14 @@ _port_dispatch() {
"pseudo-advanced:Advanced Pseudo-portnames:($pseudo_advanced)"
;;
upgrade)
+ # No good reason to actually cache outdated ports list
local outdated_packages
- outdated_packages=("${(f)$(port outdated | sed -e '1 d' -e 's/^\([[:graph:]]*\).*/\1/')}")
- _describe "Outdated ports" outdated_packages
+ outdated_packages=( $(_call_program path-outdated "port echo outdated | cut -d ' ' -f 1") )
+ _alternative -- \
+ "upgrade-options:Upgrade options:(($upgrade_options))" \
+ "ports:Outdated ports:($outdated_packages)" \
+ "pseudo-common:Common Pseudo-portnames:($pseudo_common)" \
+ "pseudo-advanced:Advanced Pseudo-portnames:($pseudo_advanced)"
;;
rev-upgrade)
if (( CURRENT == 3 )); then