This commit is contained in:
parent
d83b3eda16
commit
2ab1b36efb
136
_osc
Normal file
136
_osc
Normal 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
73
_zypper
Normal 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 "$@"
|
@ -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
|
||||
|
||||
|
23
zsh.spec
23
zsh.spec
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user