OBS User unknown 2009-05-25 15:28:59 +00:00 committed by Git OBS Bridge
parent d83b3eda16
commit 2ab1b36efb
4 changed files with 229 additions and 9 deletions

136
_osc Normal file
View File

@ -0,0 +1,136 @@
#compdef osc
#
# Copyright (C) 2009 Holger Macht <holger@homac.de>
#
# This file is released under the GPLv2.
#
# Based on the the zsh guide from http://zsh.dotsrc.org/Guide/zshguide06.html
#
# Toggle verbose completions: zstyle ':completion:*:osc:*' verbose no
# zstyle ':completion:*:osc-subcommand:*' verbose no
#
# version 0.1
#
# Main dispatcher
_osc() {
if (( CURRENT > 2 )) && [[ ${words[2]} != "help" ]]; then
# Remember the subcommand name
local cmd=${words[2]}
# Set the context for the subcommand.
curcontext="${curcontext%:*:*}:osc-subcommand"
# Narrow the range of words we are looking at to exclude `osc'
(( CURRENT-- ))
shift words
# Run the completion for the subcommand
if [ "$cmd" = "submitreq" -o "$cmd" = "sr" ]; then
_osc_cmd_submitreq
elif [ "$cmd" = "getbinaries" ]; then
_osc_cmd_getbinaries
elif [ "$cmd" = "checkout" -o "$cmd" = "co" -o "$cmd" = "branch" ]; then
_osc_cmd_checkout
elif [ "$cmd" = "buildlog" -o "$cmd" = "buildinfo" ]; then
_osc_cmd_buildlog
else
_osc_cmd_do $cmd
fi
else
local hline
local -a cmdlist
local tag=0
_call_program help-commands osc help | while read -A hline; do
# start parsing with "commands:"
[[ $hline[1] = "commands:" ]] && tag=1
# stop parsing at the line starting with "For"
[[ $hline[1] = "For" ]] && tag=0
[[ $tag = 0 ]] && continue
# all commands have to start with lower case letters
[[ $hline[1] =~ ^[A-Z] ]] && continue
(( ${#hline} < 2 )) && continue
# ${hline[1]%,} truncates the last ','
cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
done
_describe -t osc-commands 'osc command' cmdlist
fi
}
_osc_cmd_getbinaries() {
_arguments \
'1:PROJECT:(PROJECT)' \
'2:PACKAGE:(PACKAGE)' \
'3:REPOSITORY:( openSUSE_10.2 openSUSE_10.3 openSUSE_11.0 openSUSE_11.1 openSUSE_Factory SUSE_SLE-11_GA )' \
'4:ARCHITECTURE:(i586 x86_64)'
}
_osc_cmd_checkout() {
_arguments \
'1:PROJECT:( openSUSE:Factory openSUSE:11.1 openSUSE:11.0 openSUSE:10.3 )' \
'2:PACKAGE:(PACKAGE)'
}
_osc_cmd_buildlog() {
_arguments \
'1:REPOSITORY:( openSUSE_10.2 openSUSE_10.3 openSUSE_11.0 openSUSE_11.1 openSUSE_Factory SUSE_SLE-11_GA )' \
'2:ARCHITECTURE:(i586 x86_64)'
}
_osc_cmd_submitreq() {
local hline
local -a cmdlist
local tag=0
_call_program help-commands osc help $cmd | while read -A hline; do
# start parsing from "usage:"
[[ $hline[1] = "usage:" ]] && tag=1
[[ $tag = 0 ]] && continue
if [[ $hline[1] =~ ^osc ]]; then
shift hline; shift hline
elif ! [[ $hline[1] =~ ^- ]]; then
# Option has to start with a '-' or 'osc submitrequest'
continue
fi
(( ${#hline} < 2 )) && continue
cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
done
_describe -t osc-commands 'osc command' cmdlist
}
_osc_cmd_do() {
local hline
local -a cmdlist
local tag=0
# only start completion if theres some '-' on the line
if ! [ "$words[2]" = "-" ]; then
_complete
return
fi
_call_program help-commands osc help $cmd | while read -A hline; do
# start parsing from "Options:"
[[ $hline[1] = "Options:" ]] && tag=1
[[ $tag = 0 ]] && continue
# Option has to start with a '-'
[[ $hline[1] =~ ^- ]] || continue
(( ${#hline} < 2 )) && continue
cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
done
if [ -n "$cmdlist" ]; then
_describe -t osc-commands 'osc command' cmdlist
else
_complete
fi
}
# Code to make sure _osc is run when we load it
_osc "$@"

73
_zypper Normal file
View File

@ -0,0 +1,73 @@
#compdef zypper
#
# Copyright (C) 2009 Holger Macht <holger@homac.de>
#
# This file is released under the GPLv2.
#
# Based on the the zsh guide from http://zsh.dotsrc.org/Guide/zshguide06.html
#
# Toggle verbose completions: zstyle ':completion:*:zypper:*' verbose no
# zstyle ':completion:*:zypper-subcommand:*' verbose no
#
# version 0.1
#
# Main dispatcher
_zypper() {
if (( CURRENT > 2 )) && [[ ${words[2]} != "help" ]]; then
# Remember the subcommand name
local cmd=${words[2]}
# Set the context for the subcommand.
curcontext="${curcontext%:*:*}:zypper-subcommand"
# Narrow the range of words we are looking at to exclude `zypper'
(( CURRENT-- ))
shift words
_zypper_cmd_do $cmd
else
local hline
local -a cmdlist
local tag=0
_call_program help-commands zypper help | while read -A hline; do
# start parsing with "Global Options:"
[[ $hline =~ "^Global Options:" ]] && tag=1
[[ $tag = 0 ]] && continue
[[ $hline[1] =~ ^\t\t\t\t ]] && continue
# all commands have to start with lower case letters
[[ $hline[1] =~ ^[A-Z] ]] && continue
(( ${#hline} < 2 )) && continue
# cut comma at end of command
hline[1]=`echo $hline[1] | sed -e 's/\(^.*\),/\1/'`
# ${hline[1]%,} truncates the last ','
cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
done
_describe -t zypper-commands 'zypper command' cmdlist
fi
}
_zypper_cmd_do() {
local hline
local -a cmdlist
local tag=0
_call_program help-commands zypper help $cmd | while read -A hline; do
# start parsing from "Options:"
[[ $hline =~ "^Command options:" ]] && tag=1
[[ $tag = 0 ]] && continue
# Option has to start with a '-'
[[ $hline[1] =~ ^- ]] || continue
(( ${#hline} < 2 )) && continue
cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
done
if [ -n "$cmdlist" ]; then
_describe -t zypper-commands 'zypper command' cmdlist
else
_complete
fi
}
# Code to make sure _zypper is run when we load it
_zypper "$@"

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Apr 24 14:15:13 CEST 2009 - hmacht@suse.de
- add completion for osc (_osc)
- add completion for zypper (_zypper)
-------------------------------------------------------------------
Thu Oct 2 10:14:01 CEST 2008 - hvogel@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package zsh (Version 4.3.6)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -20,8 +20,8 @@
Name: zsh
Version: 4.3.6
Release: 66
License: Other uncritical OpenSource License
Release: 68
License: BSD 3-Clause
Group: System/Shells
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: ncurses-devel
@ -37,6 +37,8 @@ Source4: _SuSEconfig
Source5: _hwinfo
Source6: _make
Source7: zprofile
Source8: _osc
Source9: _zypper
# unused atm. we build the docs with yodl on our own.
Source20: %{name}-%{version}-doc.tar.bz2
Patch0: %{name}-4.3.4.diff
@ -124,7 +126,7 @@ groff Doc/intro.ms > intro.txt
# install SUSE configuration
%{__install} -m 0755 -Dd %{buildroot}/{etc,bin}
%{__install} -m 0644 %{S:1} %{S:2} %{S:7} %{buildroot}/etc
%{__install} -m 0644 %{S:3} %{S:4} %{S:5} %{S:6} %{buildroot}%{_datadir}/%{name}/%version/functions
%{__install} -m 0644 %{S:3} %{S:4} %{S:5} %{S:6} %{S:8} %{S:9} %{buildroot}%{_datadir}/%{name}/%version/functions
# install help files
%{__install} -m 0755 -Dd %{buildroot}%{_datadir}/%{name}/help
%{__install} -m 0644 Help/* %{buildroot}%{_datadir}/%{name}/help/
@ -155,6 +157,9 @@ groff Doc/intro.ms > intro.txt
%{_mandir}/man1/zsh*.1.gz
%changelog
* Fri Apr 24 2009 hmacht@suse.de
- add completion for osc (_osc)
- add completion for zypper (_zypper)
* Thu Oct 02 2008 hvogel@suse.de
- globally disabling the test was the plan, not only on some archs
* Thu Sep 18 2008 hvogel@suse.de
@ -270,7 +275,7 @@ groff Doc/intro.ms > intro.txt
* Thu Oct 16 2003 mmj@suse.de
- Don't build as root
- Cleanup specfile
* Wed Oct 15 2003 jh@suse.de
* Tue Oct 14 2003 jh@suse.de
- Fix profiling lockup. (we can not profile dl_closed modules yet)
* Thu Jun 19 2003 mmj@suse.de
- Update to 4.1.1
@ -295,7 +300,7 @@ groff Doc/intro.ms > intro.txt
- Use proper libdir
* Thu Aug 15 2002 poeml@suse.de
- update completion for _yast{,2} and add one for _hwinfo
* Thu Aug 15 2002 mmj@suse.de
* Wed Aug 14 2002 mmj@suse.de
- Update to 4.0.6 which was released this fast b/c a termcap /
terminfo fix was forgotten together with a fix for _mount.
* Mon Aug 12 2002 mmj@suse.de
@ -327,7 +332,7 @@ groff Doc/intro.ms > intro.txt
- Fixed build prob on beta-i386 and beta-ia64
* Tue May 08 2001 mfabian@suse.de
- bzip2 sources
* Mon Apr 16 2001 schwab@suse.de
* Sun Apr 15 2001 schwab@suse.de
- Fix missing declarations.
* Fri Apr 13 2001 mmj@suse.de
- Updated to 4.0.1-pre-3
@ -357,9 +362,9 @@ groff Doc/intro.ms > intro.txt
- removed symlink /etc/zshrc -> profile (aaa_base contains a real zshrc now)
* Fri Oct 10 1997 florian@suse.de
- update to version 3.0.5
* Tue Jun 24 1997 florian@suse.de
* Mon Jun 23 1997 florian@suse.de
- update to version 3.0.4
* Thu Jan 23 1997 florian@suse.de
* Wed Jan 22 1997 florian@suse.de
- update to version 3.0.2
* Thu Jan 02 1997 florian@suse.de
- update to version 3.0.1