components/bash/Solaris/etc.bash.bash_completion
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Mon, 11 Mar 2013 10:38:09 -0700
branchs11-update
changeset 2520 ceec631e74d1
parent 110 77641682ba6f
permissions -rw-r--r--
Close of build 10.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
110
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
# This file contains an example set of shell completions that can be used with
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
# bash(1).  These completions allow a user to complete filenames, commands
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
# name, command line options, and command line arguments using the [tab] key.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
# The completions defined here are specific to the GNU command set, as a result
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
# they will provide the choice of GNU command line options in response to the
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
# [tab] key.  For the completed options to match the command implementation,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
# you may have to have /usr/gnu/bin at the head of your PATH.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
# These completions are not included in the default bash(1) environment.  To
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
# include them in the default environment, it is recommended that this file be
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
# copied to /etc/bash/bash_completion and be sourced from either a system wide
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
# bashrc in /etc/bash/bashrc or individual bashrcs in ~/.bashrc via
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
#	[ -f /etc/bash/bash_completion ] && . /etc/bash/bash_completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
#   bash_completion - programmable completion functions for bash 3.x
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
#		      (backwards compatible with bash 2.05b)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
#   $Id: bash_completion,v 1.872 2006/03/01 16:20:18 ianmacd Exp $
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
#   Copyright (C) Ian Macdonald <[email protected]>
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
#   This program is free software; you can redistribute it and/or modify
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
#   it under the terms of the GNU General Public License as published by
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
#   the Free Software Foundation; either version 2, or (at your option)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
#   any later version.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
#   This program is distributed in the hope that it will be useful,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
#   GNU General Public License for more details.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
#   You should have received a copy of the GNU General Public License
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
#   along with this program; if not, write to the Free Software Foundation,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
#   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
#   The latest version of this software can be obtained here:
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
#   http://www.caliban.org/bash/index.shtml#completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
#   RELEASE: 20060301
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
if [[ $- == *v* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
	BASH_COMPLETION_ORIGINAL_V_VALUE="-v"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
	BASH_COMPLETION_ORIGINAL_V_VALUE="+v"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
if [[ -n $BASH_COMPLETION_DEBUG ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
	set -v
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
	set +v
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
# Alter the following to reflect the location of this file.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
[ -n "$BASH_COMPLETION" ] || BASH_COMPLETION=/etc/bash/bash_completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
[ -n "$BASH_COMPLETION_DIR" ] || BASH_COMPLETION_DIR=/etc/bash/bash_completion.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
readonly BASH_COMPLETION BASH_COMPLETION_DIR
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
# Set a couple of useful vars
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
UNAME=$( uname -s )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
# strip OS type and version under Cygwin (e.g. CYGWIN_NT-5.1 => Cygwin)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
UNAME=${UNAME/CYGWIN_*/Cygwin}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
RELEASE=$( uname -r )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
# features supported by bash 2.05 and higher
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
if [ ${BASH_VERSINFO[0]} -eq 2 ] && [[ ${BASH_VERSINFO[1]} > 04 ]] ||
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    71
   [ ${BASH_VERSINFO[0]} -gt 2 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    72
	declare -r bash205=$BASH_VERSION 2>/dev/null || :
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    73
	default="-o default"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    74
	dirnames="-o dirnames"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    75
	filenames="-o filenames"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    76
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    77
# features supported by bash 2.05b and higher
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    78
if [ ${BASH_VERSINFO[0]} -eq 2 ] && [[ ${BASH_VERSINFO[1]} = "05b" ]] ||
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    79
   [ ${BASH_VERSINFO[0]} -gt 2 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    80
	declare -r bash205b=$BASH_VERSION 2>/dev/null || :
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    81
	nospace="-o nospace"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    82
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    83
# features supported by bash 3.0 and higher
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    84
if [ ${BASH_VERSINFO[0]} -gt 2 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    85
	declare -r bash3=$BASH_VERSION 2>/dev/null || :
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    86
	bashdefault="-o bashdefault"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    87
	plusdirs="-o plusdirs"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    88
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    89
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    90
# Turn on extended globbing and programmable completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    91
shopt -s extglob progcomp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    92
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    93
# A lot of the following one-liners were taken directly from the
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    94
# completion examples provided with the bash 2.04 source distribution
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    95
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    96
# Make directory commands see only directories
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    97
complete -d pushd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    98
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    99
# The following section lists completions that are redefined later
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   100
# Do NOT break these over multiple lines.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   101
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   102
# START exclude -- do NOT remove this line
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   103
complete -f -X '!*.?(t)bz?(2)' bunzip2 bzcat bzcmp bzdiff bzegrep bzfgrep bzgrep
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   104
complete -f -X '!*.@(zip|ZIP|jar|JAR|exe|EXE|pk3|war|wsz|ear|zargo|xpi|sxw|ott)' unzip zipinfo
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   105
complete -f -X '*.Z' compress znew
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   106
complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' gunzip zcmp zdiff zcat zegrep zfgrep zgrep zless zmore
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   107
complete -f -X '!*.Z' uncompress
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   108
complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' ee display
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   109
complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   110
complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   111
complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   112
complete -f -X '!*.@(dvi|DVI)?(.@(gz|bz2))' kdvi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   113
complete -f -X '!*.@(dvi|DVI)' dvips dviselect dvitype dvipdf advi dvipdfm dvipdfmx
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   114
complete -f -X '!*.@(pdf|PDF)' acroread gpdf xpdf
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   115
complete -f -X '!*.@(?(e)ps|?(E)PS|pdf|PDF)' kpdf
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   116
complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ)|cb(r|z)|CB(R|Z)|djv?(u)|DJV?(U)||dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' evince
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   117
complete -f -X '!*.@(?(e)ps|?(E)PS)' ps2pdf
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   118
complete -f -X '!*.texi*' makeinfo texi2html
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   119
complete -f -X '!*.@(?(la)tex|?(LA)TEX|texi|TEXI|dtx|DTX|ins|INS)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   120
complete -f -X '!*.@(mp3|MP3)' mpg123 mpg321 madplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   121
complete -f -X '!*.@(mp?(e)g|MP?(E)G|wma|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|viv|rm|ram|yuv|mov|MOV|qt|QT|wmv|mp3|MP3|m4v|M4V|ogg|OGG|ogm|OGM|mp4|MP4|wav|WAV|asx|ASX|mng|MNG|srt)' xine aaxine fbxine kaffeine
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   122
complete -f -X '!*.@(avi|asf|wmv)' aviplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   123
complete -f -X '!*.@(rm?(j)|ra?(m)|smi?(l))' realplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   124
complete -f -X '!*.@(mpg|mpeg|avi|mov|qt)' xanim
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   125
complete -f -X '!*.@(ogg|OGG|m3u|flac|spx)' ogg123
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   126
complete -f -X '!*.@(mp3|MP3|ogg|OGG|pls|m3u)' gqmpeg freeamp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   127
complete -f -X '!*.fig' xfig
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   128
complete -f -X '!*.@(mid?(i)|MID?(I))' playmidi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   129
complete -f -X '!*.@(mid?(i)|MID?(I)|rmi|RMI|rcp|RCP|[gr]36|[GR]36|g18|G18|mod|MOD|xm|XM|it|IT|x3m|X3M)' timidity
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   130
complete -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' vi vim gvim rvim view rview rgvim rgview gview
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   131
complete -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' emacs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   132
complete -f -X '!*.@(exe|EXE|com|COM|scr|SCR|exe.so)' wine
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   133
complete -f -X '!*.@(zip|ZIP|z|Z|gz|GZ|tgz|TGZ)' bzme
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   134
complete -f -X '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx opera galeon curl dillo elinks amaya
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   135
complete -f -X '!*.@(sxw|stw|sxg|sgl|doc|dot|rtf|txt|htm|html|odt|ott|odm)' oowriter
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   136
complete -f -X '!*.@(sxi|sti|pps|ppt|pot|odp|otp)' ooimpress
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   137
complete -f -X '!*.@(sxc|stc|xls|xlw|xlt|csv|ods|ots)' oocalc
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   138
complete -f -X '!*.@(sxd|std|sda|sdd|odg|otg)' oodraw
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   139
complete -f -X '!*.@(sxm|smf|mml|odf)' oomath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   140
complete -f -X '!*.odb' oobase
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   141
complete -f -X '!*.rpm' rpm2cpio
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   142
# FINISH exclude -- do not remove this line
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   143
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   144
# start of section containing compspecs that can be handled within bash
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   145
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   146
# user commands see only users
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   147
complete -u su usermod userdel passwd chage write chfn groups slay w sux
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   148
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   149
# group commands see only groups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   150
[ -n "$bash205" ] && complete -g groupmod groupdel newgrp 2>/dev/null
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   151
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   152
# bg completes with stopped jobs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   153
complete -A stopped -P '%' bg
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   154
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   155
# other job commands
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   156
complete -j -P '%' fg jobs disown
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   157
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   158
# readonly and unset complete with shell variables
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   159
complete -v readonly unset
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   160
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   161
# set completes with set options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   162
complete -A setopt set
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   163
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   164
# shopt completes with shopt options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   165
complete -A shopt shopt
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   166
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   167
# helptopics
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   168
complete -A helptopic help
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   169
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   170
# unalias completes with aliases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   171
complete -a unalias
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   172
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   173
# bind completes with readline bindings (make this more intelligent)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   174
complete -A binding bind
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   175
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   176
# type and which complete on commands
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   177
complete -c command type which
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   178
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   179
# builtin completes on builtins
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   180
complete -b builtin
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   181
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   182
# start of section containing completion functions called by other functions
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   183
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   184
# This function checks whether we have a given program on the system.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   185
# No need for bulky functions in memory if we don't.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   186
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   187
have()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   188
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   189
    unset -v have
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   190
    PATH=/usr/gnu/bin:$PATH:/sbin:/usr/sbin type $1 &>/dev/null &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   191
    have="yes"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   192
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   193
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   194
# use GNU sed if we have it, since its extensions are still used in our code
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   195
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   196
[ $UNAME != Linux ] && have gsed && alias sed=gsed
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   197
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   198
# This function checks whether a given readline variable
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   199
# is `on'.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   200
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   201
_rl_enabled() 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   202
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   203
    [[ "$( bind -v )" = *$1+([[:space:]])on* ]]
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   204
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   205
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   206
# This function shell-quotes the argument
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   207
quote()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   208
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   209
	echo \'${1//\'/\'\\\'\'}\' #'# Help vim syntax highlighting
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   210
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   211
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   212
# This function quotes the argument in a way so that readline dequoting
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   213
# results in the original argument
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   214
quote_readline()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   215
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   216
	local t="${1//\\/\\\\}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   217
	echo \'${t//\'/\'\\\'\'}\' #'# Help vim syntax highlighting
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   218
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   219
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   220
# This function shell-dequotes the argument
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   221
dequote()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   222
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   223
	eval echo "$1"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   224
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   225
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   226
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   227
# Get the word to complete
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   228
# This is nicer than ${COMP_WORDS[$COMP_CWORD]}, since it handles cases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   229
# where the user is completing in the middle of a word.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   230
# (For example, if the line is "ls foobar",
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   231
# and the cursor is here -------->   ^
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   232
# it will complete just "foo", not "foobar", which is what the user wants.)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   233
_get_cword()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   234
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   235
	if [[ "${#COMP_WORDS[COMP_CWORD]}" -eq 0 ]] || [[ "$COMP_POINT" == "${#COMP_LINE}" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   236
		echo "${COMP_WORDS[COMP_CWORD]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   237
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   238
		local i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   239
		local cur="$COMP_LINE"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   240
		local index="$COMP_POINT"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   241
		for (( i = 0; i <= COMP_CWORD; ++i )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   242
			while [[ "${#cur}" -ge ${#COMP_WORDS[i]} ]] && [[ "${cur:0:${#COMP_WORDS[i]}}" != "${COMP_WORDS[i]}" ]]; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   243
				cur="${cur:1}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   244
				index="$(( index - 1 ))"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   245
			done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   246
			if [[ "$i" -lt "$COMP_CWORD" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   247
				local old_size="${#cur}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   248
				cur="${cur#${COMP_WORDS[i]}}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   249
				local new_size="${#cur}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   250
				index="$(( index - old_size + new_size ))"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   251
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   252
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   253
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   254
		if [[ "${COMP_WORDS[COMP_CWORD]:0:${#cur}}" != "$cur" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   255
			# We messed up! At least return the whole word so things keep working
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   256
			echo "${COMP_WORDS[COMP_CWORD]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   257
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   258
			echo "${cur:0:$index}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   259
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   260
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   261
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   262
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   263
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   264
# This function performs file and directory completion. It's better than
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   265
# simply using 'compgen -f', because it honours spaces in filenames.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   266
# If passed -d, it completes only on directories. If passed anything else,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   267
# it's assumed to be a file glob to complete on.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   268
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   269
_filedir()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   270
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   271
	local IFS=$'\t\n' xspec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   272
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   273
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   274
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   275
	local toks=( ) tmp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   276
	while read -r tmp; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   277
		[[ -n $tmp ]] && toks[${#toks[@]}]=$tmp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   278
	done < <( compgen -d -- "$(quote_readline "$cur")" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   279
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   280
	if [[ "$1" != -d ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   281
		xspec=${1:+"!*.$1"}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   282
		while read -r tmp; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   283
			[[ -n $tmp ]] && toks[${#toks[@]}]=$tmp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   284
		done < <( compgen -f -X "$xspec" -- "$(quote_readline "$cur")" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   285
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   286
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   287
	COMPREPLY=( "${COMPREPLY[@]}" "${toks[@]}" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   288
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   289
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   290
# This function completes on signal names
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   291
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   292
_signals()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   293
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   294
	local i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   295
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   296
	# standard signal completion is rather braindead, so we need
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   297
	# to hack around to get what we want here, which is to
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   298
	# complete on a dash, followed by the signal name minus
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   299
	# the SIG prefix
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   300
	COMPREPLY=( $( compgen -A signal SIG${cur#-} ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   301
	for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   302
		COMPREPLY[i]=-${COMPREPLY[i]#SIG}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   303
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   304
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   305
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   306
# This function completes on configured network interfaces
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   307
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   308
_configured_interfaces()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   309
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   310
	if [ -f /etc/debian_version ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   311
		# Debian system
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   312
		COMPREPLY=( $( sed -ne 's|^iface \([^ ]\+\).*$|\1|p' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   313
			       /etc/network/interfaces ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   314
	elif [ -f /etc/SuSE-release ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   315
		# SuSE system
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   316
		COMPREPLY=( $( command ls \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   317
			/etc/sysconfig/network/ifcfg-* | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   318
			sed -ne 's|.*ifcfg-\('$cur'.*\)|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   319
	elif [ -f /etc/pld-release ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   320
		# PLD Linux
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   321
		COMPREPLY=( $( command ls -B \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   322
			/etc/sysconfig/interfaces | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   323
			sed -ne 's|.*ifcfg-\('$cur'.*\)|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   324
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   325
		# Assume Red Hat
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   326
		COMPREPLY=( $( command ls \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   327
			/etc/sysconfig/network-scripts/ifcfg-* | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   328
			sed -ne 's|.*ifcfg-\('$cur'.*\)|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   329
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   330
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   331
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   332
# This function completes on all available network interfaces
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   333
# -a: restrict to active interfaces only
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   334
# -w: restrict to wireless interfaces only
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   335
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   336
_available_interfaces()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   337
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   338
	local cmd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   339
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   340
	if [ "${1:-}" = -w ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   341
		cmd="iwconfig"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   342
	elif [ "${1:-}" = -a ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   343
		cmd="ifconfig"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   344
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   345
		cmd="ifconfig -a"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   346
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   347
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   348
	COMPREPLY=( $( eval $cmd 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   349
		sed -ne 's|^\('$cur'[^[:space:][:punct:]]\{1,\}\).*$|\1|p') )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   350
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   351
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   352
# This function expands tildes in pathnames
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   353
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   354
_expand()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   355
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   356
	# FIXME: Why was this here?
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   357
	# [ "$cur" != "${cur%\\}" ] && cur="$cur\\"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   358
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   359
	# expand ~username type directory specifications
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   360
	if [[ "$cur" == \~*/* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   361
		eval cur=$cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   362
	elif [[ "$cur" == \~* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   363
		cur=${cur#\~}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   364
		COMPREPLY=( $( compgen -P '~' -u $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   365
		return ${#COMPREPLY[@]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   366
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   367
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   368
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   369
# This function completes on process IDs.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   370
# AIX and Solaris ps prefers X/Open syntax.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   371
[ $UNAME = SunOS -o $UNAME = AIX ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   372
_pids()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   373
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   374
	COMPREPLY=( $( compgen -W '$( command ps -efo pid | sed 1d )' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   375
} ||
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   376
_pids()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   377
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   378
	COMPREPLY=( $( compgen -W '$( command ps axo pid | sed 1d )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   379
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   380
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   381
# This function completes on process group IDs.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   382
# AIX and SunOS prefer X/Open, all else should be BSD.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   383
[ $UNAME = SunOS -o $UNAME = AIX ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   384
_pgids()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   385
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   386
	COMPREPLY=( $( compgen -W '$( command ps -efo pgid | sed 1d )' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   387
} ||
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   388
_pgids()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   389
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   390
	COMPREPLY=( $( compgen -W '$( command ps axo pgid | sed 1d )' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   391
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   392
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   393
# This function completes on user IDs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   394
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   395
_uids()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   396
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   397
	if type getent &>/dev/null; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   398
	    COMPREPLY=( $( getent passwd | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   399
			    awk -F: '{if ($3 ~ /^'$cur'/) print $3}' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   400
	elif type perl &>/dev/null; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   401
	    COMPREPLY=( $( compgen -W '$( perl -e '"'"'while (($uid) = (getpwent)[2]) { print $uid . "\n" }'"'"' )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   402
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   403
	    # make do with /etc/passwd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   404
	    COMPREPLY=( $( awk 'BEGIN {FS=":"} {if ($3 ~ /^'$cur'/) print $3}'\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   405
			    /etc/passwd ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   406
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   407
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   408
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   409
# This function completes on group IDs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   410
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   411
_gids()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   412
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   413
	if type getent &>/dev/null; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   414
	    COMPREPLY=( $( getent group | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   415
			    awk -F: '{if ($3 ~ /^'$cur'/) print $3}' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   416
	elif type perl &>/dev/null; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   417
	    COMPREPLY=( $( compgen -W '$( perl -e '"'"'while (($gid) = (getgrent)[2]) { print $gid . "\n" }'"'"' )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   418
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   419
	    # make do with /etc/group
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   420
	    COMPREPLY=( $( awk 'BEGIN {FS=":"} {if ($3 ~ /^'$cur'/) print $3}'\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   421
			    /etc/group ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   422
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   423
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   424
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   425
# This function completes on services
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   426
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   427
_services()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   428
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   429
	local sysvdir famdir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   430
	[ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d || sysvdir=/etc/init.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   431
	famdir=/etc/xinetd.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   432
	COMPREPLY=( $( builtin echo $sysvdir/!(*.rpmsave|*.rpmorig|*~|functions)) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   433
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   434
	if [ -d $famdir ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   435
		COMPREPLY=( "${COMPREPLY[@]}" $( builtin echo $famdir/!(*.rpmsave|*.rpmorig|*~)) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   436
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   437
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   438
	COMPREPLY=( $( compgen -W '${COMPREPLY[@]#@($sysvdir|$famdir)/}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   439
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   440
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   441
# This function complete on modules
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   442
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   443
_modules()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   444
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   445
	local modpath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   446
	modpath=/lib/modules/$1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   447
	COMPREPLY=( $( command ls -R $modpath | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   448
			sed -ne 's/^\('$cur'.*\)\.k\?o\(\|.gz\)$/\1/p') )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   449
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   450
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   451
# this function complete on user:group format
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   452
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   453
_usergroup()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   454
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   455
	local IFS=$'\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   456
	cur=${cur//\\\\ / }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   457
	if [[ $cur = *@(\\:|.)* ]] && [ -n "$bash205" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   458
		user=${cur%%*([^:.])}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   459
		COMPREPLY=( $(compgen -P ${user/\\\\} -g -- ${cur##*[.:]}) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   460
	elif [[ $cur = *:* ]] && [ -n "$bash205" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   461
		COMPREPLY=( $( compgen -g -- ${cur##*[.:]} ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   462
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   463
		COMPREPLY=( $( compgen -S : -u -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   464
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   465
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   466
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   467
# this function count the number of mandatory args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   468
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   469
_count_args()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   470
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   471
	args=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   472
	for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   473
		if [[ "${COMP_WORDS[i]}" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   474
			args=$(($args+1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   475
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   476
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   477
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   478
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   479
# start of section containing completion functions for bash built-ins
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   480
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   481
# bash alias completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   482
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   483
_alias()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   484
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   485
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   486
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   487
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   488
	cur=${COMP_WORDS[$COMP_CWORD]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   489
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   490
	case "$COMP_LINE" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   491
	*[^=])
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   492
		COMPREPLY=( $( compgen -A alias -S '=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   493
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   494
	*=)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   495
		COMPREPLY=( "$( alias ${cur%=} 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   496
			     sed -e 's|^alias '$cur'\(.*\)$|\1|' )" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   497
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   498
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   499
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   500
complete -F _alias $nospace alias
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   501
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   502
# bash export completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   503
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   504
_export()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   505
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   506
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   507
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   508
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   509
	cur=${COMP_WORDS[$COMP_CWORD]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   510
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   511
	case "$COMP_LINE" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   512
	*=\$*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   513
		COMPREPLY=( $( compgen -v -P '$' -- ${cur#*=\$} ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   514
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   515
	*[^=])
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   516
		COMPREPLY=( $( compgen -v -S '=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   517
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   518
	*=)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   519
		COMPREPLY=( "$( eval echo -n \"$`echo ${cur%=}`\" |
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   520
			( echo -n \'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   521
			  sed -e 's/'\''/'\''\\\'\'''\''/g'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   522
			  echo -n \' ) )" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   523
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   524
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   525
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   526
complete -F _export $default $nospace export
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   527
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   528
# bash shell function completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   529
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   530
_function()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   531
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   532
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   533
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   534
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   535
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   536
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   537
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   538
	if [[ $1 == @(declare|typeset) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   539
		if [ "$prev" = -f ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   540
			COMPREPLY=( $( compgen -A function -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   541
		elif [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   542
			COMPREPLY=( $( compgen -W '-a -f -F -i -r -x -p' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   543
				       $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   544
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   545
	elif [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   546
		COMPREPLY=( $( compgen -A function -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   547
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   548
		COMPREPLY=( "() $( type -- ${COMP_WORDS[1]} | sed -e 1,2d )" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   549
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   550
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   551
complete -F _function function declare typeset
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   552
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   553
# bash complete completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   554
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   555
_complete()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   556
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   557
	local cur prev options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   558
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   559
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   560
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   561
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   562
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   563
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   564
		-o)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   565
			options="default dirnames filenames"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   566
			[ -n "$bash205b" ] && options="$options nospace"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   567
			[ -n "$bash3" ] && options="$options bashdefault plusdirs"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   568
			COMPREPLY=( $( compgen -W "$options" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   569
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   570
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   571
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   572
		-A)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   573
			COMPREPLY=( $( compgen -W 'alias arrayvar binding \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   574
				builtin command directory disabled enabled \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   575
				export file function group helptopic hostname \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   576
				job keyword running service setopt shopt \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   577
				signal stopped user variable' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   578
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   579
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   580
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   581
		-C)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   582
			COMPREPLY=( $( compgen -A command -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   583
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   584
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   585
		-F)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   586
			COMPREPLY=( $( compgen -A function -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   587
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   588
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   589
		-@(p|r))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   590
			COMPREPLY=( $( complete -p | sed -e 's|.* ||' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   591
					grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   592
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   593
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   594
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   595
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   596
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   597
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   598
		# relevant options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   599
		options="-a -b -c -d -e -f -g -j -k -s -v -u -A -G -W -P -S -X -F -C"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   600
		[ -n "$bash205" ] && options="$options -o"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   601
		COMPREPLY=( $( compgen -W "$options" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   602
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   603
		COMPREPLY=( $( compgen -A command -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   604
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   605
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   606
complete -F _complete complete
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   607
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   608
# start of section containing completion functions for external programs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   609
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   610
# a little help for FreeBSD ports users
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   611
[ $UNAME = FreeBSD ] && complete -W 'index search fetch fetch-list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   612
	extract patch configure build install reinstall \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   613
	deinstall clean clean-depends kernel buildworld' make
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   614
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   615
# This completes on a list of all available service scripts for the
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   616
# 'service' command and/or the SysV init.d directory, followed by
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   617
# that script's available commands
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   618
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   619
{ have service || [ -d /etc/init.d/ ]; } &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   620
_service()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   621
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   622
	local cur sysvdir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   623
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   624
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   625
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   626
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   627
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   628
	# don't complete for things like killall, ssh and mysql if it's
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   629
	# the standalone command, rather than the init script
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   630
	[[ ${COMP_WORDS[0]} != @(*init.d/!(functions|~)|service) ]] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   631
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   632
	# don't complete past 2nd token
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   633
	[ $COMP_CWORD -gt 2 ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   634
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   635
	[ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   636
				|| sysvdir=/etc/init.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   637
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   638
	if [[ $COMP_CWORD -eq 1 ]] && [[ $prev == "service" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   639
		_services
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   640
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   641
		COMPREPLY=( $( compgen -W '`sed -ne "y/|/ /; \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   642
				s/^.*Usage.*{\(.*\)}.*$/\1/p" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   643
				$sysvdir/${prev##*/} 2>/dev/null`' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   644
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   645
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   646
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   647
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   648
complete -F _service service
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   649
[ -d /etc/init.d/ ] && complete -F _service $default \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   650
	$(for i in /etc/init.d/*; do echo ${i##*/}; done)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   651
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   652
# chown(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   653
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   654
_chown()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   655
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   656
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   657
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   658
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   659
	# options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   660
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   661
		COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   662
		--dereference --no-dereference --from= --silent --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   663
		--reference= --recursive --verbose --help --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   664
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   665
		_count_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   666
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   667
		case $args in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   668
			1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   669
				_usergroup
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   670
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   671
			*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   672
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   673
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   674
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   675
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   676
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   677
complete -F _chown $filenames chown
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   678
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   679
# chgrp(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   680
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   681
_chgrp()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   682
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   683
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   684
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   685
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   686
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   687
	cur=${cur//\\\\/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   688
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   689
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   690
	# options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   691
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   692
		COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   693
		--dereference --no-dereference --silent --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   694
		--reference= --recursive --verbose --help --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   695
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   696
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   697
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   698
	# first parameter on line or first since an option?
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   699
	if [ $COMP_CWORD -eq 1 ] && [[ "$cur" != -* ]] || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   700
	   [[ "$prev" == -* ]] && [ -n "$bash205" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   701
		local IFS=$'\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   702
		COMPREPLY=( $( compgen -g $cur 2>/dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   703
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   704
		_filedir || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   705
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   706
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   707
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   708
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   709
complete -F _chgrp $filenames chgrp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   710
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   711
# umount(8) completion. This relies on the mount point being the third
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   712
# space-delimited field in the output of mount(8)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   713
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   714
_umount()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   715
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   716
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   717
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   718
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   719
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   720
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   721
	OLDIFS="$IFS"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   722
	IFS="\n"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   723
	COMPREPLY=( $( compgen -W '$( mount | cut -d" " -f 3 )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   724
	IFS="$OLDIFS"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   725
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   726
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   727
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   728
complete -F _umount $dirnames umount
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   729
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   730
# mount(8) completion. This will pull a list of possible mounts out of
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   731
# /etc/{,v}fstab, unless the word being completed contains a ':', which
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   732
# would indicate the specification of an NFS server. In that case, we
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   733
# query the server for a list of all available exports and complete on
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   734
# that instead.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   735
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   736
_mount()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   737
{       local cur i sm host
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   738
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   739
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   740
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   741
	[[ "$cur" == \\ ]] && cur="/"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   742
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   743
	for i in {,/usr}/{,s}bin/showmount; do [ -x $i ] && sm=$i && break; done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   744
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   745
	if [ -n "$sm" ] && [[ "$cur" == *:* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   746
		COMPREPLY=( $( $sm -e ${cur%%:*} | sed 1d | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   747
			       grep ^${cur#*:} | awk '{print $1}' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   748
	elif [[ "$cur" == //* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   749
		host=${cur#//}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   750
		host=${host%%/*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   751
		if [ -n "$host" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   752
			COMPREPLY=( $( compgen -W "$( echo $( smbclient -d 0 -NL $host 2>/dev/null|
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   753
			sed -ne '/^['"$'\t '"']*Sharename/,/^$/p' |
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   754
			sed -ne '3,$s|^[^A-Za-z]*\([^'"$'\t '"']*\).*$|//'$host'/\1|p' ) )" -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   755
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   756
	elif [ -r /etc/vfstab ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   757
		# Solaris
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   758
		COMPREPLY=( $( awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   759
				/etc/vfstab | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   760
	elif [ ! -e /etc/fstab ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   761
		# probably Cygwin
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   762
		COMPREPLY=( $( mount | awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   763
				 | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   764
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   765
		# probably Linux
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   766
		COMPREPLY=( $( awk '! /^[ \t]*#/ {if ($2 ~ /\//) print $2}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   767
				/etc/fstab | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   768
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   769
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   770
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   771
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   772
complete -F _mount $default $filenames mount
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   773
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   774
# Linux rmmod(8) completion. This completes on a list of all currently
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   775
# installed kernel modules.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   776
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   777
have rmmod && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   778
_rmmod()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   779
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   780
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   781
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   782
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   783
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   784
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   785
	COMPREPLY=( $( /sbin/lsmod | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   786
		  awk '{if (NR != 1 && $1 ~ /^'$cur'/) print $1}' 2>/dev/null ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   787
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   788
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   789
complete -F _rmmod rmmod
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   790
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   791
# Linux insmod(8), modprobe(8) and modinfo(8) completion. This completes on a
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   792
# list of all available modules for the version of the kernel currently
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   793
# running.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   794
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   795
_insmod()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   796
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   797
	local cur prev modpath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   798
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   799
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   800
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   801
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   802
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   803
	# behave like lsmod for modprobe -r
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   804
	if [ $1 = "modprobe" ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   805
	   [ "${COMP_WORDS[1]}" = "-r" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   806
		COMPREPLY=( $( /sbin/lsmod | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   807
				awk '{if (NR != 1 && $1 ~ /^'$cur'/) print $1}' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   808
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   809
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   810
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   811
	# do filename completion if we're giving a path to a module
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   812
	if [[ "$cur" == */* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   813
		_filedir '@(?(k)o?(.gz))'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   814
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   815
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   816
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   817
	if [ $COMP_CWORD -gt 1 ] && 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   818
	   [[ "${COMP_WORDS[COMP_CWORD-1]}" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   819
		# do module parameter completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   820
		COMPREPLY=( $( /sbin/modinfo -p ${COMP_WORDS[1]} 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   821
		       awk '{if ($1 ~ /^parm:/ && $2 ~ /^'$cur'/) { print $2 } \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   822
			else if ($1 !~ /:/ && $1 ~ /^'$cur'/) { print $1 }}' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   823
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   824
		_modules $(uname -r)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   825
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   826
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   827
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   828
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   829
complete -F _insmod $filenames insmod modprobe modinfo
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   830
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   831
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   832
# man(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   833
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   834
[ $UNAME = GNU -o $UNAME = Linux -o $UNAME = Darwin \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   835
  -o $UNAME = FreeBSD -o $UNAME = SunOS -o $UNAME = Cygwin \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   836
  -o $UNAME = OpenBSD ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   837
_man()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   838
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   839
	local cur prev sect manpath UNAME
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   840
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   841
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   842
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   843
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   844
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   845
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   846
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   847
	# default completion if parameter contains /
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   848
	if [[ "$cur" == */* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   849
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   850
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   851
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   852
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   853
	UNAME=$( uname -s )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   854
	# strip OS type and version under Cygwin
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   855
	UNAME=${UNAME/CYGWIN_*/Cygwin}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   856
	if [ $UNAME = GNU -o $UNAME = Linux -o $UNAME = FreeBSD \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   857
	     -o $UNAME = Cygwin ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   858
		manpath=$( manpath 2>/dev/null || command man --path )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   859
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   860
		manpath=$MANPATH
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   861
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   862
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   863
	if [ -z "$manpath" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   864
		COMPREPLY=( $( compgen -c -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   865
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   866
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   867
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   868
	# determine manual section to search
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   869
	[[ "$prev" == [0-9ln] ]] && sect=$prev || sect='*'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   870
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   871
	manpath=$manpath:
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   872
	if [ -n "$cur" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   873
		manpath="${manpath//://*man$sect/$cur* } ${manpath//://*cat$sect/$cur* }"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   874
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   875
		manpath="${manpath//://*man$sect/ } ${manpath//://*cat$sect/ }"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   876
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   877
		
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   878
	# redirect stderr for when path doesn't exist
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   879
	COMPREPLY=( $( eval command ls "$manpath" 2>/dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   880
	# weed out directory path names and paths to man pages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   881
	COMPREPLY=( ${COMPREPLY[@]##*/?(:)} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   882
	# strip suffix from man pages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   883
	COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2)} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   884
	COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   885
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   886
	[[ "$prev" != [0-9ln] ]] && _filedir '[0-9ln]'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   887
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   888
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   889
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   890
[ $UNAME = GNU -o $UNAME = Linux -o $UNAME = Darwin \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   891
  -o $UNAME = FreeBSD -o $UNAME = SunOS -o $UNAME = Cygwin \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   892
  -o $UNAME = OpenBSD ] && \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   893
complete -F _man $filenames man apropos whatis
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   894
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   895
# renice(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   896
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   897
_renice()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   898
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   899
	local command cur curopt i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   900
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   901
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   902
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   903
	command=$1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   904
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   905
	i=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   906
	# walk back through command line and find last option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   907
	while [ $i -le $COMP_CWORD -a ${#COMPREPLY[@]} -eq 0 ]; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   908
		curopt=${COMP_WORDS[COMP_CWORD-$i]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   909
		case "$curopt" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   910
		-u)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   911
			COMPREPLY=( $( compgen -u -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   912
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   913
		-g)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   914
			_pgids
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   915
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   916
		-p|$command)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   917
			_pids
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   918
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   919
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   920
		i=$(( ++i ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   921
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   922
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   923
complete -F _renice renice
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   924
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   925
# kill(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   926
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   927
_kill()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   928
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   929
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   930
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   931
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   932
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   933
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   934
	if [ $COMP_CWORD -eq 1 ] && [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   935
		# return list of available signals
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   936
		_signals
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   937
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   938
		# return list of available PIDs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   939
		_pids
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   940
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   941
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   942
complete -F _kill kill
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   943
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   944
# Linux and FreeBSD killall(1) completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   945
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   946
[ $UNAME = Linux -o $UNAME = FreeBSD ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   947
_killall()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   948
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   949
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   950
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   951
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   952
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   953
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   954
	if [ $COMP_CWORD -eq 1 ] && [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   955
		_signals
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   956
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   957
		COMPREPLY=( $( compgen -W '$( command ps axo command | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   958
			      sed -ne "1d; s/^\[\?\([^-][^] ]*\).*$/\1/p" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   959
			      sed -e "s/.*\///" )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   960
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   961
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   962
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   963
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   964
[ $UNAME = Linux -o $UNAME = FreeBSD ] && complete -F _killall killall pkill
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   965
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   966
# Linux and FreeBSD pgrep(1) completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   967
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   968
[ $UNAME = Linux -o $UNAME = FreeBSD ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   969
_pgrep()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   970
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   971
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   972
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   973
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   974
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   975
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   976
	COMPREPLY=( $( compgen -W '$( command ps axo command | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   977
		      sed -ne "1d; s/^\[\?\([^-][^] ]*\).*$/\1/p" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   978
		      sed -e "s/.*\///" )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   979
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   980
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   981
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   982
[ $UNAME = Linux -o $UNAME = FreeBSD ] && complete -F _pgrep pgrep
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   983
# Linux pidof(8) completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   984
[ $UNAME = Linux ] && complete -F _pgrep pidof
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   985
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   986
# GNU find(1) completion. This makes heavy use of ksh style extended
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   987
# globs and contains Linux specific code for completing the parameter
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   988
# to the -fstype option.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   989
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   990
_find()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   991
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   992
	local cur prev i exprfound onlyonce
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   993
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   994
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   995
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   996
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   997
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   998
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   999
	-@(max|min)depth)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1000
		COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1001
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1002
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1003
	-?(a|c)newer|-fls|-fprint?(0|f)|-?(i)?(l)name|-?(i)wholename)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1004
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1005
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1006
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1007
	-fstype)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1008
		# this is highly non-portable
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1009
		[ -e /proc/filesystems ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1010
		COMPREPLY=( $( cut -d$'\t' -f 2 /proc/filesystems | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1011
				grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1012
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1013
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1014
	-gid)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1015
		_gids
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1016
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1017
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1018
	-group)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1019
		if [ -n "$bash205" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1020
			COMPREPLY=( $( compgen -g -- $cur 2>/dev/null) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1021
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1022
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1023
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1024
	-?(x)type)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1025
		COMPREPLY=( $( compgen -W 'b c d p f l s' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1026
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1027
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1028
	-uid)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1029
		_uids
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1030
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1031
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1032
	-user)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1033
		COMPREPLY=( $( compgen -u -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1034
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1035
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1036
	-exec|-ok)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1037
		COMP_WORDS=(COMP_WORDS[0] $cur)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1038
		COMP_CWORD=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1039
		_command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1040
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1041
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1042
	-[acm]min|-[acm]time|-?(i)?(l)name|-inum|-?(i)path|-?(i)regex| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1043
	-links|-perm|-size|-used|-printf)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1044
		# do nothing, just wait for a parameter to be given
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1045
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1046
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1047
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1048
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1049
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1050
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1051
	# set exprfound to 1 if there is already an expression present
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1052
	for i in ${COMP_WORDS[@]}; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1053
		[[ "$i" = [-\(\),\!]* ]] && exprfound=1 && break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1054
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1055
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1056
	# handle case where first parameter is not a dash option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1057
	if [ "$exprfound" != 1 ] && [[ "$cur" != [-\(\),\!]* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1058
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1059
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1060
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1061
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1062
	# complete using basic options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1063
	COMPREPLY=( $( compgen -W '-daystart -depth -follow -help -maxdepth \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1064
			-mindepth -mount -noleaf -version -xdev -amin -anewer \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1065
			-atime -cmin -cnewer -ctime -empty -false -fstype \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1066
			-gid -group -ilname -iname -inum -ipath -iregex \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1067
			-wholename \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1068
			-links -lname -mmin -mtime -name -newer -nouser \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1069
			-nogroup -perm -regex -size -true -type -uid -used \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1070
			-user -xtype -exec -fls -fprint -fprint0 -fprintf -ok \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1071
			-print -print0 -printf -prune -ls' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1072
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1073
	# this removes any options from the list of completions that have
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1074
	# already been specified somewhere on the command line, as long as
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1075
	# these options can only be used once (in a word, "options", in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1076
	# opposition to "tests" and "actions", as in the find(1) manpage).
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1077
	onlyonce=' -daystart -depth -follow -help -maxdepth -mindepth -mount \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1078
		   -noleaf -version -xdev '
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1079
	COMPREPLY=( $( echo "${COMP_WORDS[@]}" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1080
		       (while read -d ' ' i; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1081
			    [ "$i" == "" ] ||
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1082
			    [ "${onlyonce/ ${i%% *} / }" == "$onlyonce" ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1083
			    continue
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1084
			    # flatten array with spaces on either side,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1085
			    # otherwise we cannot grep on word boundaries of
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1086
			    # first and last word
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1087
			    COMPREPLY=" ${COMPREPLY[@]} "
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1088
			    # remove word from list of completions
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1089
			    COMPREPLY=( ${COMPREPLY/ ${i%% *} / } )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1090
			done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1091
			echo "${COMPREPLY[@]}")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1092
		  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1093
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1094
	_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1095
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1096
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1097
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1098
complete -F _find $filenames find
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1099
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1100
# Linux iwconfig(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1101
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1102
[ $UNAME = Linux ] && have iwconfig &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1103
_iwconfig()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1104
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1105
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1106
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1107
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1108
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1109
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1110
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1111
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1112
		mode)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1113
			COMPREPLY=( $( compgen -W 'managed ad-hoc master \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1114
				repeater secondary monitor' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1115
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1116
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1117
		essid)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1118
			COMPREPLY=( $( compgen -W 'on off any' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1119
			if [ -n "${COMP_IWLIST_SCAN:-}" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1120
				COMPREPLY=( "${COMPREPLY[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1121
					$( iwlist ${COMP_WORDS[1]} scan | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1122
					awk -F '"' '/ESSID/ {print $2}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1123
					grep "^$cur" ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1124
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1125
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1126
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1127
		nwid)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1128
			COMPREPLY=( $( compgen -W 'on off' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1129
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1130
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1131
		channel)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1132
			COMPREPLY=( $( iwlist ${COMP_WORDS[1]} channel | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1133
				awk '/^[[:space:]]*Channel/ {print $2}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1134
				grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1135
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1136
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1137
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1138
		freq)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1139
			COMPREPLY=( $( iwlist ${COMP_WORDS[1]} channel | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1140
				awk '/^[[:space:]]*Channel/ {print $4"G"}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1141
				grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1142
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1143
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1144
		ap)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1145
			COMPREPLY=( $( compgen -W 'on off any' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1146
			if [ -n "${COMP_IWLIST_SCAN:-}" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1147
				COMPREPLY=( "${COMPREPLY[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1148
					$( iwlist ${COMP_WORDS[1]} scan | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1149
					awk -F ': ' '/Address/ {print $2}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1150
					grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1151
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1152
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1153
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1154
		rate)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1155
			COMPREPLY=( $( compgen -W 'auto fixed' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1156
			COMPREPLY=( "${COMPREPLY[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1157
				$( iwlist ${COMP_WORDS[1]} rate | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1158
				awk '/^[[:space:]]*[0-9]/ {print $1"M"}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1159
				grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1160
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1161
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1162
		rts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1163
			COMPREPLY=( $( compgen -W 'auto fixed off' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1164
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1165
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1166
		frag)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1167
			COMPREPLY=( $( compgen -W 'auto fixed off' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1168
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1169
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1170
		key)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1171
			COMPREPLY=( $( compgen -W 'off on open restricted' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1172
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1173
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1174
		enc)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1175
			COMPREPLY=( $( compgen -W 'off on open restricted' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1176
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1177
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1178
		power)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1179
			COMPREPLY=( $( compgen -W 'period timeout off on' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1180
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1181
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1182
		txpower)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1183
			COMPREPLY=( $( compgen -W 'off on auto' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1184
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1185
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1186
		retry)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1187
			COMPREPLY=( $( compgen -W 'limit lifetime' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1188
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1189
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1190
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1191
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1192
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1193
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1194
			COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1195
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1196
			_available_interfaces -w
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1197
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1198
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1199
		COMPREPLY=( $( compgen -W 'essid nwid mode freq channel sens mode \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1200
			ap nick rate rts frag enc key power txpower commit' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1201
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1202
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1203
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1204
complete -F _iwconfig iwconfig
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1205
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1206
# Linux iwlist(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1207
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1208
[ $UNAME = Linux ] && have iwlist &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1209
_iwlist()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1210
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1211
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1212
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1213
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1214
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1215
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1216
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1217
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1218
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1219
			COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1220
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1221
			_available_interfaces -w
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1222
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1223
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1224
		COMPREPLY=( $( compgen -W 'scan scanning freq frequency \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1225
			channel rate bit bitrate key enc encryption power \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1226
			txpower retry ap accesspoint peers event' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1227
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1228
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1229
complete -F _iwlist iwlist
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1230
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1231
# Linux iwspy(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1232
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1233
[ $UNAME = Linux ] && have iwspy &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1234
_iwspy()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1235
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1236
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1237
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1238
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1239
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1240
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1241
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1242
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1243
			COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1244
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1245
			_available_interfaces -w
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1246
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1247
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1248
		COMPREPLY=( $( compgen -W 'setthr getthr off' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1249
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1250
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1251
complete -F _iwspy iwspy
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1252
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1253
# Linux iwpriv(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1254
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1255
[ $UNAME = Linux ] && have iwpriv &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1256
_iwpriv()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1257
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1258
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1259
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1260
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1261
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1262
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1263
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1264
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1265
		roam)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1266
			COMPREPLY=( $( compgen -W 'on off' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1267
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1268
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1269
		port)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1270
			COMPREPLY=( $( compgen -W 'ad-hoc managed' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1271
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1272
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1273
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1274
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1275
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1276
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1277
			COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1278
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1279
			_available_interfaces -w
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1280
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1281
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1282
		COMPREPLY=( $( compgen -W '--all roam port' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1283
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1284
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1285
complete -F _iwpriv iwpriv
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1286
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1287
# RedHat & Debian GNU/Linux if{up,down} completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1288
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1289
[ $UNAME = Linux ] && { have ifup || have ifdown; } &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1290
_ifupdown()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1291
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1292
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1293
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1294
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1295
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1296
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1297
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1298
		_configured_interfaces
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1299
		COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- "$cur") )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1300
       fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1301
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1302
       return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1303
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1304
complete -F _ifupdown ifup ifdown
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1305
[ $UNAME = Linux ] && have ifstatus && complete -F _ifupdown ifstatus
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1306
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1307
# Linux ipsec(8) completion (for FreeS/WAN)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1308
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1309
[ $UNAME = Linux ] && have ipsec &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1310
_ipsec()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1311
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1312
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1313
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1314
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1315
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1316
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1317
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1318
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1319
		COMPREPLY=( $( compgen -W 'auto barf eroute klipsdebug look \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1320
					   manual pluto ranbits rsasigkey \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1321
					   setup showdefaults showhostkey spi \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1322
					   spigrp tncfg whack' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1323
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1324
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1325
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1326
	case ${COMP_WORDS[1]} in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1327
	auto)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1328
		COMPREPLY=( $( compgen -W '--asynchronous --up --add --delete \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1329
					   --replace --down --route --unroute \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1330
					   --ready --status --rereadsecrets' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1331
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1332
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1333
	manual)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1334
		COMPREPLY=( $( compgen -W '--up --down --route --unroute \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1335
					   --union' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1336
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1337
	ranbits)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1338
		COMPREPLY=( $( compgen -W '--quick --continuous --bytes' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1339
					  -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1340
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1341
	setup)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1342
		COMPREPLY=( $( compgen -W '--start --stop --restart' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1343
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1344
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1345
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1346
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1347
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1348
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1349
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1350
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1351
complete -F _ipsec ipsec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1352
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1353
# Postfix completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1354
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1355
have postfix && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1356
# postfix(1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1357
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1358
_postfix()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1359
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1360
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1361
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1362
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1363
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1364
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1365
	if [[ $cur == '-' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1366
		COMPREPLY=(-c -D -v)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1367
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1368
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1369
	if [[ $prev == '-c' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1370
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1371
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1372
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1373
	if [[ $prev == '-D' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1374
		COMPREPLY=( $( compgen -W 'start' -- "`get_cword`" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1375
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1376
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1377
	COMPREPLY=( $( compgen -W 'start stop reload abort flush check' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1378
		"`get_cword`" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1379
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1380
complete -F _postfix postfix
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1381
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1382
# postalias(1) and postmap(1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1383
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1384
_postmap()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1385
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1386
	local cur prev len idx
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1387
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1388
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1389
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1390
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1391
	if [[ $cur == '-' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1392
		COMPREPLY=(-N -f -i -n -o -p -r -v -w -c -d -q)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1393
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1394
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1395
	if [[ $prev == '-c' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1396
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1397
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1398
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1399
	if [[ $prev == -[dq] ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1400
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1401
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1402
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1403
	if [[ "$cur" == *:* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1404
	       	COMPREPLY=( $( compgen -f -- ${cur#*:} ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1405
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1406
		len=${#cur}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1407
		idx=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1408
		for pval in $( /usr/sbin/postconf -m ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1409
			if [[ "$cur" == "${pval:0:$len}" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1410
				COMPREPLY[$idx]="$pval:"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1411
				idx=$(($idx+1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1412
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1413
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1414
		if [[ $idx -eq 0 ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1415
			COMPREPLY=( $( compgen -f -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1416
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1417
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1418
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1419
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1420
complete -F _postmap postmap postalias
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1421
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1422
# postcat(1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1423
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1424
_postcat()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1425
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1426
	local cur prev pval len idx qfile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1427
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1428
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1429
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1430
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1431
	if [[ $cur == '-' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1432
		COMPREPLY=(-c -q -v)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1433
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1434
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1435
	if [[ $prev == '-c' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1436
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1437
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1438
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1439
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1440
	qfile=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1441
	for idx in "${COMP_WORDS[@]}"; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1442
		[[ "$idx" = -q ]] && qfile=1 && break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1443
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1444
	if [[ $qfile == 1 ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1445
		len=${#cur}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1446
		idx=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1447
		for pval in $( mailq | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1448
			sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; s/[* !].*$//' ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1449
			if [[ "$cur" == "${pval:0:$len}" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1450
				COMPREPLY[$idx]=$pval
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1451
				idx=$(($idx+1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1452
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1453
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1454
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1455
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1456
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1457
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1458
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1459
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1460
complete -F _postcat postcat
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1461
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1462
# postconf(1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1463
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1464
_postconf()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1465
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1466
	local cur prev pval len idx eqext
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1467
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1468
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1469
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1470
	if [[ $cur == '-' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1471
		COMPREPLY=(-c -d -e -h -m -l -n -v)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1472
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1473
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1474
	if [[ $prev == '-c' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1475
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1476
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1477
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1478
	if [[ $prev == '-e' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1479
		cur=${cur#[\"\']}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1480
		eqext='='
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1481
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1482
	len=${#cur}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1483
	idx=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1484
	for pval in $( /usr/sbin/postconf | cut -d ' ' -f 1 ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1485
		if [[ "$cur" == "${pval:0:$len}" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1486
			COMPREPLY[$idx]="$pval$eqext"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1487
			idx=$(($idx+1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1488
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1489
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1490
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1491
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1492
complete -F _postconf postconf
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1493
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1494
# postsuper(1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1495
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1496
_postsuper()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1497
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1498
	local cur prev pval len idx
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1499
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1500
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1501
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1502
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1503
	if [[ $cur == '-' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1504
		COMPREPLY=(-c -d -h -H -p -r -s -v)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1505
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1506
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1507
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1508
	-[dr])
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1509
		len=${#cur}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1510
		idx=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1511
		for pval in $( echo ALL; mailq | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1512
			sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; s/[* !].*$//' ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1513
			if [[ "$cur" == "${pval:0:$len}" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1514
				COMPREPLY[$idx]=$pval
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1515
				idx=$(($idx+1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1516
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1517
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1518
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1519
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1520
	-h)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1521
		len=${#cur}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1522
		idx=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1523
		for pval in $( echo ALL; mailq | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1524
			sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; s/[* ].*$//; /!$/d' ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1525
			if [[ "$cur" == "${pval:0:$len}" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1526
				COMPREPLY[$idx]=$pval
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1527
				idx=$(($idx+1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1528
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1529
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1530
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1531
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1532
	-H)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1533
		len=${#cur}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1534
		idx=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1535
		for pval in $( echo ALL; mailq | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1536
			sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; /^[0-9A-Z]*[* ]/d; s/!.*$//' ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1537
			if [[ "$cur" == "${pval:0:$len}" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1538
				COMPREPLY[$idx]=$pval
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1539
				idx=$(($idx+1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1540
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1541
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1542
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1543
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1544
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1545
	COMPREPLY=( $( compgen -W 'hold incoming active deferred' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1546
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1547
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1548
complete -F _postsuper postsuper
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1549
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1550
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1551
# cvs(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1552
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1553
have cvs && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1554
set_prefix()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1555
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1556
	[ -z ${prefix:-} ] || prefix=${cur%/*}/
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1557
	[ -r ${prefix:-}CVS/Entries ] || prefix=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1558
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1559
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1560
get_entries()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1561
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1562
	local IFS=$'\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1563
	[ -r ${prefix:-}CVS/Entries ] && \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1564
	entries=$(cut -d/ -f2 -s ${prefix:-}CVS/Entries)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1565
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1566
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1567
get_modules()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1568
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1569
	if [ -n "$prefix" ]; then 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1570
		COMPREPLY=( $( command ls -d ${cvsroot}/${prefix}/!(CVSROOT) ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1571
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1572
		COMPREPLY=( $( command ls -d ${cvsroot}/!(CVSROOT) ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1573
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1574
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1575
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1576
_cvs()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1577
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1578
	local cur count mode i cvsroot cvsroots pwd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1579
	local -a flags miss files entries changed newremoved
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1580
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1581
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1582
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1583
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1584
	count=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1585
	for i in "${COMP_WORDS[@]}"; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1586
		[ $count -eq $COMP_CWORD ] && break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1587
		# Last parameter was the CVSROOT, now go back to mode selection
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1588
		if [ "${COMP_WORDS[((count))]}" == "$cvsroot" -a "$mode" == "cvsroot" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1589
			mode=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1590
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1591
		if [ -z "$mode" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1592
			case $i in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1593
			-d)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1594
				mode=cvsroot
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1595
				cvsroot=${COMP_WORDS[((count+1))]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1596
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1597
			@(ad?(d)|new))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1598
				mode=add
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1599
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1600
			@(adm?(in)|rcs))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1601
				mode=admin
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1602
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1603
			ann?(notate))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1604
				mode=annotate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1605
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1606
			@(checkout|co|get))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1607
				mode=checkout
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1608
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1609
			@(com?(mit)|ci))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1610
				mode=commit
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1611
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1612
			di?(f?(f)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1613
				mode=diff
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1614
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1615
			ex?(p?(ort)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1616
				mode=export
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1617
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1618
			?(un)edit)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1619
				mode=$i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1620
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1621
			hi?(s?(tory)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1622
				mode=history
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1623
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1624
			im?(p?(ort)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1625
				mode=import
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1626
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1627
			re?(l?(ease)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1628
				mode=release
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1629
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1630
			?(r)log)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1631
				mode=log
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1632
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1633
			@(rdiff|patch))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1634
				mode=rdiff
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1635
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1636
			@(remove|rm|delete))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1637
				mode=remove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1638
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1639
			@(rtag|rfreeze))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1640
				mode=rtag
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1641
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1642
			st?(at?(us)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1643
				mode=status
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1644
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1645
			@(tag|freeze))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1646
				mode=tag
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1647
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1648
			up?(d?(ate)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1649
				mode=update
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1650
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1651
			*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1652
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1653
			esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1654
		elif [[ "$i" = -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1655
			flags=( "${flags[@]}" $i )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1656
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1657
		count=$((++count))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1658
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1659
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1660
	case "$mode" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1661
	add)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1662
		if [[ "$cur" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1663
			set_prefix
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1664
			if [ $COMP_CWORD -gt 1 -a -r ${prefix:-}CVS/Entries ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1665
				get_entries
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1666
				[ -z "$cur" ] && \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1667
				files=$( command ls -Ad !(CVS) ) || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1668
				files=$( command ls -d ${cur}* 2>/dev/null )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1669
				for i in "${entries[@]}"; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1670
					files=( ${files[@]/#$i//} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1671
				done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1672
				COMPREPLY=( $( compgen -W '${files[@]}' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1673
					       $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1674
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1675
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1676
			COMPREPLY=( $( compgen -W '-k -m' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1677
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1678
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1679
	admin)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1680
		if [[ "$cur" = -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1681
			COMPREPLY=( $( compgen -W '-i -a -A -e -b -c -k -l -u \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1682
						   -L -U -m -M -n -N -o -q -I \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1683
						   -s -t -t- -T -V -x -z' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1684
					$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1685
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1686
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1687
	annotate)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1688
		if [[ "$cur" = -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1689
			COMPREPLY=( $( compgen -W '-D -F -f -l -R -r' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1690
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1691
			get_entries
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1692
			COMPREPLY=( $( compgen -W '${entries[@]}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1693
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1694
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1695
	checkout)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1696
		if [[ "$cur" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1697
			[ -z "$cvsroot" ] && cvsroot=$CVSROOT
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1698
			COMPREPLY=( $( cvs -d "$cvsroot" co -c 2> /dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1699
					awk '{print $1}' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1700
			COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1701
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1702
			COMPREPLY=( $( compgen -W '-A -N -P -R -c -f -l -n -p \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1703
						  -s -r -D -d -k -j' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1704
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1705
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1706
	commit)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1707
		set_prefix
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1708
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1709
		if [[ "$cur" != -* ]] && [ -r ${prefix:-}CVS/Entries ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1710
			# if $COMP_CVS_REMOTE is not null, 'cvs commit' will
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1711
			# complete on remotely checked-out files (requires
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1712
			# passwordless access to the remote repository
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1713
			if [ -n "${COMP_CVS_REMOTE:-}" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1714
				# this is the least computationally intensive
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1715
				# way found so far, but other changes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1716
				# (something other than changed/removed/new)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1717
				# may be missing
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1718
				changed=( $( cvs -q diff --brief 2>&1 | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1719
				sed -ne 's/^Files [^ ]* and \([^ ]*\) differ$/\1/p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1720
				newremoved=( $( cvs -q diff --brief 2>&1 | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1721
				sed -ne 's/^cvs diff: \([^ ]*\) .*, no comparison available$/\1/p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1722
				COMPREPLY=( $( compgen -W '${changed[@]:-} \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1723
						   ${newremoved[@]:-}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1724
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1725
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1726
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1727
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1728
			COMPREPLY=( $( compgen -W '-n -R -l -f -F -m -r' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1729
				       $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1730
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1731
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1732
	cvsroot)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1733
		if [ -r ~/.cvspass ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1734
			# Ugly escaping because of bash treating ':' specially
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1735
			cvsroots=$( sed 's/^[^ ]* //; s/:/\\:/g' ~/.cvspass )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1736
			COMPREPLY=( $( compgen -W '$cvsroots' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1737
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1738
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1739
	export)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1740
		if [[ "$cur" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1741
			[ -z "$cvsroot" ] && cvsroot=$CVSROOT
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1742
			COMPREPLY=( $( cvs -d "$cvsroot" co -c | awk '{print $1}' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1743
			COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1744
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1745
			COMPREPLY=( $( compgen -W '-N -f -l -R -n \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1746
						  -r -D -d -k' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1747
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1748
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1749
	diff)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1750
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1751
			_longopt diff
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1752
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1753
			get_entries
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1754
			COMPREPLY=( $( compgen -W '${entries[@]:-}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1755
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1756
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1757
	remove)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1758
		if [[ "$cur" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1759
			set_prefix
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1760
			if [ $COMP_CWORD -gt 1 -a -r ${prefix:-}CVS/Entries ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1761
				get_entries
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1762
				# find out what files are missing
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1763
				for i in "${entries[@]}"; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1764
					[ ! -r "$i" ] && miss=( "${miss[@]}" $i )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1765
				done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1766
				COMPREPLY=( $(compgen -W '${miss[@]:-}' -- $cur) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1767
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1768
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1769
			COMPREPLY=( $( compgen -W '-f -l -R' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1770
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1771
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1772
	import)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1773
		if [[ "$cur" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1774
			# starts with same algorithm as checkout
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1775
			[ -z "$cvsroot" ] && cvsroot=$CVSROOT
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1776
			prefix=${cur%/*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1777
			if [ -r ${cvsroot}/${prefix} ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1778
				get_modules
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1779
				COMPREPLY=( ${COMPREPLY[@]#$cvsroot} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1780
				COMPREPLY=( ${COMPREPLY[@]#\/} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1781
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1782
			pwd=$( pwd )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1783
			pwd=${pwd##*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1784
			COMPREPLY=( $( compgen -W '${COMPREPLY[@]} $pwd' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1785
				       $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1786
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1787
			COMPREPLY=( $( compgen -W '-d -k -I -b -m -W' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1788
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1789
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1790
	update)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1791
		if [[ "$cur" = -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1792
			COMPREPLY=( $( compgen -W '-A -P -C -d -f -l -R -p \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1793
						   -k -r -D -j -I -W' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1794
						   $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1795
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1796
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1797
	"")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1798
		COMPREPLY=( $( compgen -W 'add admin annotate checkout ci co \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1799
					   commit diff delete edit export \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1800
					   freeze get history import log new \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1801
					   patch rcs rdiff release remove \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1802
					   rfreeze rlog rm rtag stat status \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1803
					   tag unedit up update -H -Q -q -b \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1804
					   -d -e -f -l -n -t -r -v -w -x -z \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1805
					   --help --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1806
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1807
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1808
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1809
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1810
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1811
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1812
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1813
complete -F _cvs $default cvs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1814
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1815
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1816
have rpm && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1817
# helper functions for rpm completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1818
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1819
_rpm_installed_packages()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1820
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1821
	local ver nodig nosig
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1822
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1823
	if [ -r /var/log/rpmpkgs -a \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1824
		/var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1825
		# using RHL 7.2 or later - this is quicker than querying the DB
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1826
		COMPREPLY=( $( sed -ne \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1827
		's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+.*\.rpm$|\1|p' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1828
				/var/log/rpmpkgs ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1829
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1830
		nodig=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1831
		nosig=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1832
		ver=$(rpm --version)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1833
		ver=${ver##* }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1834
	  
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1835
		if [[ "$ver" > "4.0.4" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1836
			nodig="--nodigest"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1837
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1838
		if [[ "$ver" > "4.0.99" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1839
			nosig="--nosignature"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1840
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1841
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1842
		COMPREPLY=( $( rpm -qa $nodig $nosig | sed -ne \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1843
		's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+$|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1844
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1845
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1846
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1847
_rpm_groups()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1848
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1849
	local IFS=$'\t'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1850
	# remove trailing backslash, or grep will complain
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1851
	cur=${cur%"\\"}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1852
	COMPREPLY=( $( rpm -qa $nodig $nosig --queryformat '%{group}\n' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1853
		       grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1854
	# backslash escape spaces and translate newlines to tabs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1855
	COMPREPLY=( $( echo "${COMPREPLY[@]}" | sed 's/ /\\ /g' | tr '\n' '\t' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1856
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1857
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1858
# rpm(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1859
# 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1860
_rpm()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1861
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1862
	local cur prev ver nodig nosig
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1863
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1864
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1865
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1866
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1867
	nodig=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1868
	nosig=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1869
	ver=$(rpm --version); ver=${ver##* }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1870
  
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1871
	if [[ "$ver" > "4.0.4" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1872
		nodig="--nodigest"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1873
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1874
	if [[ "$ver" > "4.0.99" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1875
		nosig="--nosignature"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1876
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1877
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1878
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1879
		# first parameter on line
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1880
		case "$cur" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1881
		-b*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1882
			COMPREPLY=( $( compgen -W '-ba -bb -bc -bi -bl -bp -bs'\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1883
				       -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1884
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1885
		-t*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1886
			COMPREPLY=( $( compgen -W '-ta -tb -tc -ti -tl -tp -ts'\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1887
				       -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1888
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1889
		--*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1890
			COMPREPLY=( $( compgen -W '--help --version --initdb \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1891
			--checksig --recompile --rebuild --resign --addsign \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1892
			--rebuilddb --showrc --setperms --setugids --tarbuild \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1893
			--eval --install --upgrade --query --freshen --erase \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1894
			--verify --querytags --rmsource --rmspec --clean \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1895
			--import' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1896
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1897
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1898
			COMPREPLY=( $( compgen -W '-b -e -F -i -q -t -U -V' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1899
				       -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1900
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1901
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1902
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1903
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1904
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1905
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1906
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1907
	--@(@(db|exclude)path|prefix|relocate|root))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1908
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1909
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1910
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1911
	--eval)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1912
		# get a list of macros
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1913
		COMPREPLY=( $( sed -ne 's|^\(%'${cur#\%}'[^ '$'\t'']*\).*$|\1|p' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1914
			       /usr/lib/rpm/macros ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1915
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1916
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1917
	--pipe)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1918
		COMPREPLY=( $( compgen -c -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1919
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1920
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1921
	--rcfile)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1922
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1923
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1924
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1925
	--specfile)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1926
		# complete on .spec files
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1927
		_filedir spec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1928
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1929
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1930
	--whatprovides)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1931
		if [[ "$cur" == */* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1932
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1933
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1934
		# complete on capabilities
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1935
			COMPREPLY=( $( rpm -qa $nodig $nosig --queryformat \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1936
					'%{providename}\n' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1937
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1938
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1939
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1940
	--whatrequires)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1941
		# complete on capabilities
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1942
		COMPREPLY=( $( rpm -qa $nodig $nosig --queryformat \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1943
				'%{requirename}\n' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1944
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1945
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1946
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1947
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1948
	case "${COMP_WORDS[1]}" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1949
	-@([iFU]*|-install|-freshen|-upgrade))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1950
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1951
			COMPREPLY=( $( compgen -W '--percent --force --test \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1952
			--replacepkgs --replacefiles --root --excludedocs \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1953
			--includedocs --noscripts --rcfile --ignorearch \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1954
			--dbpath --prefix --ignoreos --nodeps --allfiles \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1955
			--ftpproxy --ftpport --justdb --httpproxy --httpport \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1956
			--noorder --relocate --badreloc --notriggers \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1957
			--excludepath --ignoresize --oldpackage --define \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1958
			--eval --pipe --queryformat --repackage --nosuggests \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1959
			--nodigest --nosignature' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1960
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1961
			_filedir 'rpm'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1962
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1963
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1964
	-@(e|-erase))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1965
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1966
			COMPREPLY=( $( compgen -W '--allmatches --noscripts \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1967
			--notriggers --nodeps --test --repackage' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1968
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1969
			_rpm_installed_packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1970
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1971
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1972
	-@(q*|-query))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1973
		# check whether we're doing file completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1974
		if [ "${COMP_LINE#* -*([^ -])f}" != "$COMP_LINE" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1975
		    if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1976
			COMPREPLY=( $( compgen -W '--scripts --root \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1977
				--rcfile --requires --ftpport --ftpproxy \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1978
				--httpproxy --httpport --provides --triggers \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1979
				--dump --changelog --dbpath \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1980
				--last --filesbypkg \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1981
				--info --list --state \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1982
				--docfiles --configfiles --queryformat \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1983
				--conflicts --obsoletes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1984
				--nodigest --nosignature \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1985
				--triggerscripts' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1986
		    else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1987
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1988
		    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1989
		elif [ "${COMP_LINE#* -*([^ -])g}" != "$COMP_LINE" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1990
			_rpm_groups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1991
		elif [ "${COMP_LINE#* -*([^ -])p}" != "$COMP_LINE" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1992
			# uninstalled package completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1993
			if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1994
				COMPREPLY=( $( compgen -W '--scripts --root \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1995
				--rcfile --whatprovides --whatrequires \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1996
				--requires --triggeredby --ftpport --ftpproxy \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1997
				--httpproxy --httpport --provides --triggers \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1998
				--dump --changelog --dbpath --filesbypkg \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  1999
				--define --eval --pipe --showrc --info --list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2000
				--state --docfiles --configfiles --queryformat\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2001
				--conflicts --obsoletes --nodigest \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2002
				--nosignature' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2003
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2004
				_filedir 'rpm'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2005
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2006
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2007
			# installed package completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2008
			if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2009
				COMPREPLY=( $( compgen -W '--scripts --root \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2010
				--rcfile --whatprovides --whatrequires \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2011
				--requires --triggeredby --ftpport --ftpproxy \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2012
				--httpproxy --httpport --provides --triggers \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2013
				--dump --changelog --dbpath --specfile \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2014
				--querybynumber --last --filesbypkg --define \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2015
				--eval --pipe --showrc --info --list --state \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2016
				--docfiles --configfiles --queryformat \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2017
				--conflicts --obsoletes --pkgid --hdrid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2018
				--fileid --tid --nodigest --nosignature \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2019
				--triggerscripts' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2020
			elif [ "${COMP_LINE#* -*([^ -])a}" == "$COMP_LINE" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2021
				_rpm_installed_packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2022
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2023
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2024
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2025
	-@(K*|-checksig))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2026
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2027
			COMPREPLY=( $( compgen -W '--nopgp --nogpg --nomd5 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2028
					--nodigest --nosignature' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2029
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2030
			_filedir 'rpm'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2031
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2032
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2033
	-@([Vy]*|-verify))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2034
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2035
			COMPREPLY=( $( compgen -W '--root --rcfile --dbpath \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2036
			--nodeps --nogroup --nolinkto --nomode --nomtime \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2037
			--nordev --nouser --nofiles --noscripts --nomd5 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2038
			--querytags --specfile --whatrequires --whatprovides \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2039
			--nodigest --nosignature' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2040
		# check whether we're doing file completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2041
		elif [ "${COMP_LINE#* -*([^ -])f}" != "$COMP_LINE" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2042
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2043
		elif [ "${COMP_LINE#* -*([^ -])g}" != "$COMP_LINE" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2044
			_rpm_groups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2045
		elif [ "${COMP_LINE#* -*([^ -])p}" != "$COMP_LINE" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2046
			_filedir 'rpm'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2047
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2048
			_rpm_installed_packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2049
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2050
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2051
	-[bt]*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2052
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2053
			COMPREPLY=( $( compgen -W '--short-circuit --timecheck \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2054
			--clean --rmsource --rmspec --test --sign --buildroot \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2055
			--target -- buildarch --buildos --nobuild --nodeps \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2056
			--nodirtokens' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2057
		elif [[ ${COMP_WORDS[1]} == -b* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2058
			_filedir 'spec'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2059
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2060
			_filedir '@(tgz|tar.@(gz|bz2))'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2061
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2062
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2063
	--re@(build|compile))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2064
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2065
			COMPREPLY=( $( compgen -W '--nodeps --rmsource \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2066
			  --rmspec --sign --nodirtokens --target' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2067
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2068
			_filedir '?(no)src.rpm'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2069
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2070
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2071
	--tarbuild)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2072
		_filedir '@(tgz|tar.@(gz|bz2))'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2073
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2074
	--@(re|add)sign)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2075
		_filedir 'rpm'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2076
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2077
	--set@(perms|gids))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2078
		_rpm_installed_packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2079
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2080
	--@(clean|rms@(ource|pec)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2081
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2082
			COMPREPLY=( $( compgen -W '--clean --rmsource \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2083
					--rmspec' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2084
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2085
			_filedir 'spec'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2086
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2087
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2088
	--@(import|dbpath|root))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2089
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2090
			COMPREPLY=( $( compgen -W '--import --dbpath --root' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2091
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2092
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2093
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2094
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2095
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2096
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2097
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2098
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2099
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2100
complete -F _rpm $filenames rpm rpmbuild
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2101
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2102
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2103
# Debian apt-get(8) completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2104
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2105
have apt-get &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2106
_apt_get()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2107
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2108
	local cur prev special i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2109
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2110
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2111
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2112
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2113
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2114
	for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2115
		if [[ ${COMP_WORDS[i]} == @(install|remove|purge|source|build-dep) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2116
			special=${COMP_WORDS[i]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2117
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2118
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2119
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2120
	if [ -n "$special" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2121
		case $special in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2122
		remove|purge)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2123
			if [ -f /etc/debian_version ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2124
				# Debian system
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2125
				COMPREPLY=( $( _comp_dpkg_installed_packages \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2126
						$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2127
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2128
				# assume RPM based
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2129
				_rpm_installed_packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2130
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2131
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2132
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2133
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2134
			COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2135
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2136
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2137
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2138
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2139
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2140
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2141
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2142
	    -@(c|-config-file))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2143
 		     _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2144
		     return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2145
		     ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2146
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2147
	    -@(t|-target-release|-default-release))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2148
		     COMPREPLY=( $( apt-cache policy | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2149
				    grep "release.o=Debian,a=$cur" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2150
				    sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2151
		     return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2152
		     ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2153
 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2154
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2155
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2156
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2157
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2158
		COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2159
				-u -t -b -c -o --download-only --fix-broken \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2160
				--help --version --ignore-missing \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2161
				--fix-missing --no-download --quiet --simulate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2162
				--just-print --dry-run --recon --no-act --yes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2163
				--assume-yes --show-upgraded --only-source \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2164
				--compile --build --ignore-hold \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2165
				--target-release --no-upgrade --force-yes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2166
				--print-uris --purge --reinstall \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2167
				--list-cleanup --default-release \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2168
				--trivial-only --no-remove --diff-only \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2169
				--tar-only --config-file --option --auto-remove' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2170
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2171
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2172
		COMPREPLY=( $( compgen -W 'update upgrade dselect-upgrade \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2173
				dist-upgrade install remove purge source \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2174
				build-dep check clean autoclean autoremove' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2175
				-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2176
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2177
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2178
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2179
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2180
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2181
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2182
complete -F _apt_get $filenames apt-get
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2183
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2184
# Debian apt-cache(8) completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2185
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2186
have apt-cache &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2187
_apt_cache()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2188
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2189
	local cur prev special i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2190
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2191
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2192
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2193
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2194
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2195
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2196
	if [ "$cur" != show ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2197
	    for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2198
		if [[ ${COMP_WORDS[i]} == @(add|depends|dotty|policy|rdepends|madison|show?(pkg|src|)) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2199
		    special=${COMP_WORDS[i]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2200
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2201
	    done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2202
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2203
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2204
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2205
	if [ -n "$special" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2206
	    case $special in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2207
		add)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2208
		    _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2209
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2210
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2211
		
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2212
 		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2213
		    COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2214
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2215
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2216
		
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2217
	    esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2218
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2219
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2220
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2221
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2222
	     -@(c|p|s|-config-file|-@(pkg|src)-cache))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2223
		     _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2224
		     return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2225
		     ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2226
	     search)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2227
		     if [[ "$cur" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2228
			    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2229
		     fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2230
		     ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2231
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2232
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2233
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2234
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2235
		COMPREPLY=( $( compgen -W '-h -v -p -s -q -i -f -a -g -c \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2236
				-o --help --version --pkg-cache --src-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2237
				--quiet --important --full --all-versions \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2238
				--no-all-versions --generate --no-generate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2239
				--names-only --all-names --recurse \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2240
				--config-file --option' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2241
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2242
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2243
		COMPREPLY=( $( compgen -W 'add gencaches show showpkg showsrc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2244
				stats dump dumpavail unmet search search \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2245
				depends rdepends pkgnames dotty xvcg \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2246
				policy madison' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2247
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2248
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2249
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2250
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2251
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2252
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2253
complete -F _apt_cache $filenames apt-cache
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2254
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2255
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2256
# Debian aptitude(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2257
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2258
have aptitude && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2259
have grep-status && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2260
_comp_dpkg_hold_packages()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2261
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2262
	grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2263
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2264
} || {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2265
_comp_dpkg_hold_packages()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2266
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2267
	grep -B 2 'hold' /var/lib/dpkg/status | grep "Package: $1" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2268
		| cut -d\  -f2
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2269
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2270
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2271
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2272
_aptitude()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2273
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2274
	local cur dashoptions prev special i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2275
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2276
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2277
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2278
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2279
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2280
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2281
	dashoptions='-S -u -i -h --help --version -s --simulate -d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2282
		     --download-only -P --prompt -y --assume-yes -F \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2283
		     --display-format -O --sort -w --width -f -r -g \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2284
		     --with-recommends --with-suggests -R -G \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2285
		     --without-recommends --without-suggests -t \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2286
		     --target-release -V --show-versions -D --show-deps\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2287
		     -Z -v --verbose --purge-unused'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2288
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2289
	for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2290
	    if [[ ${COMP_WORDS[i]} == @(install|reinstall|hold|unhold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|forbid-version|purge|remove|changelog|why|why-not|keep|keep-all) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2291
		special=${COMP_WORDS[i]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2292
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2293
	    #exclude some mutually exclusive options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2294
	    [[ ${COMP_WORDS[i]} == '-u' ]] && dashoptions=${dashoptions/-i}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2295
	    [[ ${COMP_WORDS[i]} == '-i' ]] && dashoptions=${dashoptions/-u}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2296
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2297
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2298
	if [[ -n "$special" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2299
	   case $special in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2300
	       @(install|hold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|changelog|why|why-not))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2301
		   COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2302
		   return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2303
		   ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2304
	       @(purge|remove|reinstall|forbid-version))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2305
  		   COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2306
		   return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2307
		   ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2308
	       unhold)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2309
  		   COMPREPLY=( $( _comp_dpkg_hold_packages $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2310
		   return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2311
		   ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2312
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2313
	   esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2314
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2315
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2316
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2317
	    # don't complete anything if these options are found
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2318
	    @(autoclean|clean|forget-new|search|upgrade|safe-upgrade|update|keep-all))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2319
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2320
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2321
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2322
	    -S)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2323
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2324
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2325
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2326
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2327
	    -@(t|-target-release|-default-release))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2328
		COMPREPLY=( $( apt-cache policy | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2329
		    grep "release.o=Debian,a=$cur" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2330
		    sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2331
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2332
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2333
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2334
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2335
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2336
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2337
	    COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2338
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2339
	    COMPREPLY=( $( compgen -W 'update upgrade safe-upgrade forget-new clean \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2340
				       autoclean install reinstall remove \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2341
				       hold unhold purge markauto unmarkauto why why-not \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2342
				       dist-upgrade full-upgrade download search show \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2343
				       forbid-version changelog keep-all' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2344
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2345
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2346
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2347
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2348
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2349
complete -F _aptitude $default aptitude
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2350
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2351
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2352
# Debian apt-build(1) completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2353
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2354
have apt-build &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2355
_apt_build()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2356
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2357
	local cur prev special i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2358
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2359
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2360
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2361
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2362
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2363
	for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2364
		if [[ ${COMP_WORDS[i]} == @(install|remove|source|info|clean) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2365
			special=${COMP_WORDS[i]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2366
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2367
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2368
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2369
	if [ -n "$special" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2370
		case $special in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2371
		@(install|source|info))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2372
			COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2373
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2374
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2375
		remove)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2376
			COMPREPLY=( $( _comp_dpkg_installed_packages \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2377
					$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2378
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2379
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2380
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2381
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2382
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2383
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2384
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2385
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2386
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2387
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2388
	     --@(patch|build-dir|repository-dir))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2389
		   _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2390
		   return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2391
		   ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2392
 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2393
	     -@(h|-help))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2394
		   return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2395
		   ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2396
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2397
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2398
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2399
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2400
	    COMPREPLY=( $( compgen -W '--help --show-upgraded -u --build-dir \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2401
				  --repository-dir --build-only \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2402
				  --build-command --reinstall --rebuild \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2403
				  --remove-builddep --no-wrapper --purge \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2404
				  --patch --patch-strip -p --yes -y \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2405
				  --version -v --no-source' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2406
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2407
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2408
	    COMPREPLY=( $( compgen -W 'update upgrade install remove \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2409
				  source dist-upgrade world clean info \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2410
				  clean-build update-repository ' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2411
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2412
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2413
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2414
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2415
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2416
complete -F _apt_build $filenames apt-build
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2417
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2418
# chsh(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2419
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2420
_chsh()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2421
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2422
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2423
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2424
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2425
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2426
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2427
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2428
	if [ "$prev" = "-s" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2429
	  if [ -f /etc/debian_version ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2430
	    COMPREPLY=( $( </etc/shells ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2431
	  else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2432
	    COMPREPLY=( $( chsh -l | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2433
	  fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2434
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2435
	  COMPREPLY=( $( compgen -u -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2436
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2437
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2438
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2439
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2440
complete -F _chsh chsh
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2441
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2442
# chkconfig(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2443
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2444
have chkconfig &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2445
_chkconfig()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2446
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2447
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2448
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2449
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2450
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2451
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2452
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2453
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2454
	@([1-6]|--@(list|add|del)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2455
		_services
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2456
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2457
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2458
	--level)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2459
		COMPREPLY=( $( compgen -W '1 2 3 4 5 6' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2460
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2461
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2462
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2463
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2464
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2465
		COMPREPLY=( $( compgen -W '--list --add --del --level' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2466
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2467
		if [ $COMP_CWORD -eq 2 -o $COMP_CWORD -eq 4 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2468
			COMPREPLY=( $( compgen -W 'on off reset' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2469
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2470
			_services
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2471
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2472
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2473
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2474
complete -F _chkconfig chkconfig
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2475
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2476
# This function provides simple user@host completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2477
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2478
_user_at_host() {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2479
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2480
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2481
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2482
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2483
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2484
	if [[ $cur == *@* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2485
		_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2486
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2487
		COMPREPLY=( $( compgen -u -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2488
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2489
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2490
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2491
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2492
shopt -u hostcomplete && complete -F _user_at_host $nospace talk ytalk finger
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2493
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2494
# This function performs host completion based on ssh's known_hosts files,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2495
# defaulting to standard host completion if they don't exist.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2496
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2497
_known_hosts()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2498
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2499
       local cur curd ocur user suffix aliases global_kh user_kh hosts i host
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2500
       local -a kh khd config
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2501
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2502
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2503
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2504
	ocur=$cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2505
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2506
	[ "$1" = -a ] || [ "$2" = -a ] && aliases='yes'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2507
	[ "$1" = -c ] || [ "$2" = -c ] && suffix=':'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2508
	[[ $cur == *@* ]] && user=${cur%@*}@ && cur=${cur#*@}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2509
	kh=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2510
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2511
	# ssh config files
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2512
	[ -r /etc/ssh/ssh_config ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2513
	  config=( "${config[@]}" "/etc/ssh/ssh_config" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2514
	[ -r "${HOME}/.ssh/config" ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2515
	  config=( "${config[@]}" "${HOME}/.ssh/config" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2516
	[ -r "${HOME}/.ssh2/config" ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2517
	  config=( "${config[@]}" "${HOME}/.ssh2/config" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2518
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2519
	if [ ${#config[@]} -gt 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2520
	    # expand path (if present) to global known hosts file
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2521
	    global_kh=$( eval echo $( sed -ne 's/^[ \t]*[Gg][Ll][Oo][Bb][Aa][Ll][Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/\1/p' "${config[@]}" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2522
	    # expand path (if present) to user known hosts file
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2523
	    user_kh=$( eval echo $( sed -ne 's/^[ \t]*[Uu][Ss][Ee][Rr][Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee]['"$'\t '"']*\(.*\)$/\1/p' "${config[@]}" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2524
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2525
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2526
	# Global known_hosts files
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2527
	[ -r "$global_kh" ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2528
	    kh=( "${kh[@]}" "$global_kh" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2529
	[ -r /etc/ssh/ssh_known_hosts ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2530
	    kh=( "${kh[@]}" /etc/ssh/ssh_known_hosts )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2531
	[ -r /etc/ssh/ssh_known_hosts2 ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2532
	    kh=( "${kh[@]}" /etc/ssh/ssh_known_hosts2 )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2533
	[ -r /etc/known_hosts ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2534
	    kh=( "${kh[@]}" /etc/known_hosts )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2535
	[ -r /etc/known_hosts2 ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2536
	    kh=( "${kh[@]}" /etc/known_hosts2 )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2537
	[ -d /etc/ssh2/knownhosts ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2538
	    khd=( "${khd[@]}" /etc/ssh2/knownhosts/*pub )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2539
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2540
	# User known_hosts files
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2541
	[ -r "$user_kh" ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2542
	    kh=( "${kh[@]}" "$user_kh" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2543
	[ -r ~/.ssh/known_hosts ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2544
	    kh=( "${kh[@]}" ~/.ssh/known_hosts )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2545
	[ -r ~/.ssh/known_hosts2 ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2546
	    kh=( "${kh[@]}" ~/.ssh/known_hosts2 )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2547
	[ -d ~/.ssh2/hostkeys ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2548
	    khd=( "${khd[@]}" ~/.ssh2/hostkeys/*pub )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2549
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2550
	# If we have known_hosts files to use
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2551
	if [ ${#kh[@]} -gt 0 -o ${#khd[@]} -gt 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2552
	    # Escape slashes and dots in paths for awk
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2553
	    cur=${cur//\//\\\/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2554
	    cur=${cur//\./\\\.}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2555
	    curd=$cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2556
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2557
	    if [[ "$cur" == [0-9]*.* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2558
		# Digits followed by a dot - just search for that
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2559
		cur="^$cur.*"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2560
	    elif [[ "$cur" == [0-9]* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2561
		# Digits followed by no dot - search for digits followed
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2562
		# by a dot
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2563
		cur="^$cur.*\."
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2564
	    elif [ -z "$cur" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2565
		# A blank - search for a dot or an alpha character
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2566
		cur="[a-z.]"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2567
	    else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2568
		cur="^$cur"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2569
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2570
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2571
	    if [ ${#kh[@]} -gt 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2572
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2573
		# FS needs to look for a comma separated list
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2574
		COMPREPLY=( $( awk 'BEGIN {FS=","}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2575
				/^[^|]/ {for (i=1; i<=2; ++i) { \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2576
				       gsub(" .*$", "", $i); \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2577
				       if ($i ~ /'$cur'/) {print $i} \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2578
				}}' "${kh[@]}" 2>/dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2579
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2580
	    if [ ${#khd[@]} -gt 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2581
		# Needs to look for files called
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2582
		# .../.ssh2/key_22_<hostname>.pub
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2583
		# dont fork any processes, because in a cluster environment, 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2584
		# there can be hundreds of hostkeys
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2585
		for i in "${khd[@]}" ; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2586
		    if [[ "$i" == *key_22_$curd*.pub ]] && [ -r "$i" ] ; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2587
			host=${i/#*key_22_/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2588
			host=${host/%.pub/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2589
			COMPREPLY=( "${COMPREPLY[@]}" $host )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2590
		    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2591
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2592
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2593
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2594
	    # append any available aliases from config files
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2595
	    if [ ${#config[@]} -gt 0 ] && [ -n "$aliases" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2596
		local host_aliases=$( sed -ne 's/^[Hh][Oo][Ss][Tt]\([Nn][Aa][Mm][Ee]\)\?['"$'\t '"']\+\([^*?]*\)$/\2/p' "${config[@]}" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2597
		hosts=$( compgen -W "$host_aliases" -- $ocur )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2598
		COMPREPLY=( "${COMPREPLY[@]}" $hosts )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2599
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2600
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2601
	    # Now add results of normal hostname completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2602
	    COMPREPLY=( "${COMPREPLY[@]}" $( compgen -A hostname -- $ocur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2603
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2604
	    # apply suffix
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2605
	    for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2606
		COMPREPLY[i]=$user${COMPREPLY[i]}$suffix
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2607
	    done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2608
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2609
	    # Just do normal hostname completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2610
	    COMPREPLY=( $( compgen -A hostname -S "$suffix" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2611
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2612
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2613
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2614
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2615
complete -F _known_hosts traceroute traceroute6 tracepath tracepath6 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2616
	ping ping6 fping fping6 telnet host nslookup rsh rlogin ftp dig ssh-installkeys mtr
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2617
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2618
# ssh(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2619
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2620
have ssh && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2621
_ssh()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2622
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2623
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2624
	local -a config
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2625
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2626
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2627
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2628
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2629
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2630
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2631
	-*c)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2632
	    COMPREPLY=( $( compgen -W 'blowfish 3des 3des-cbc blowfish-cbc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2633
			   arcfour cast128-cbc' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2634
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2635
	-*i)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2636
	    _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2637
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2638
	-*l)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2639
	    COMPREPLY=( $( compgen -u -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2640
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2641
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2642
	    _known_hosts -a
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2643
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2644
	    [ $COMP_CWORD -eq 1 ] || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2645
		COMPREPLY=( "${COMPREPLY[@]}" $( compgen -c -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2646
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2647
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2648
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2649
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2650
shopt -u hostcomplete && complete -F _ssh ssh slogin sftp xhost autossh
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2651
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2652
# scp(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2653
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2654
_scp()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2655
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2656
	local cur userhost path
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2657
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2658
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2659
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2660
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2661
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2662
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2663
	if [[ "$cur" == *:* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2664
		local IFS=$'\t\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2665
		# remove backslash escape from :
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2666
		cur=${cur/\\:/:}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2667
		userhost=${cur%%?(\\):*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2668
		path=${cur#*:}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2669
		# unescape spaces
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2670
		path=${path//\\\\\\\\ / }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2671
		if [ -z "$path" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2672
			# default to home dir of specified user on remote host
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2673
			path=$(ssh -o 'Batchmode yes' $userhost pwd 2>/dev/null)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2674
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2675
		# escape spaces; remove executables, aliases, pipes and sockets;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2676
		# add space at end of file names
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2677
		COMPREPLY=( $( ssh -o 'Batchmode yes' $userhost \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2678
			       command ls -aF1d "$path*" 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2679
			       sed -e "s/[][(){}<>\",:;^&!$&=?\`|\\ ']/\\\\\\\\\\\\&/g" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2680
				   -e 's/[*@|=]$//g' -e 's/[^\/]$/& /g' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2681
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2682
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2683
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2684
	[[ "$cur" == */* ]] || _known_hosts -c -a
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2685
		local IFS=$'\t\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2686
		COMPREPLY=( "${COMPREPLY[@]}" $( command ls -aF1d $cur* \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2687
			    2>/dev/null | sed \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2688
			    -e "s/[][(){}<>\",:;^&!$&=?\`|\\ ']/\\\\&/g" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2689
			    -e 's/[*@|=]$//g' -e 's/[^\/]$/& /g' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2690
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2691
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2692
complete -F _scp $nospace scp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2693
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2694
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2695
# rsync(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2696
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2697
have rsync &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2698
_rsync()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2699
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2700
	local cur prev shell i userhost path
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2701
 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2702
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2703
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2704
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2705
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2706
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2707
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2708
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2709
	--@(config|password-file|include-from|exclude-from))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2710
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2711
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2712
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2713
	-@(T|-temp-dir|-compare-dest))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2714
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2715
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2716
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2717
	-@(e|-rsh))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2718
		COMPREPLY=( $( compgen -W 'rsh ssh' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2719
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2720
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2721
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2722
 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2723
	case "$cur" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2724
	-*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2725
		COMPREPLY=( $( compgen -W '-v -q  -c -a -r -R -b -u -l -L -H \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2726
				-p -o -g -D -t -S -n -W -x -B -e -C -I -T -P \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2727
				-z -h -4 -6 --verbose --quiet --checksum \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2728
				--archive --recursive --relative --backup \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2729
				--backup-dir --suffix= --update --links \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2730
				--copy-links --copy-unsafe-links --safe-links \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2731
				--hard-links --perms --owner --group --devices\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2732
				--times --sparse --dry-run --whole-file \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2733
				--no-whole-file --one-file-system \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2734
				--block-size= --rsh= --rsync-path= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2735
				--cvs-exclude --existing --ignore-existing \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2736
				--delete --delete-excluded --delete-after \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2737
				--ignore-errors --max-delete= --partial \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2738
				--force --numeric-ids --timeout= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2739
				--ignore-times --size-only --modify-window= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2740
				--temp-dir= --compare-dest= --compress \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2741
				--exclude= --exclude-from= --include= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2742
				--include-from= --version --daemon --no-detach\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2743
				--address= --config= --port= --blocking-io \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2744
				--no-blocking-io --stats --progress \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2745
				--log-format= --password-file= --bwlimit= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2746
				--write-batch= --read-batch= --help' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2747
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2748
	*:*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2749
		# find which remote shell is used
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2750
		shell=rsh
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2751
		for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2752
			if [[ "${COMP_WORDS[i]}" == -@(e|-rsh) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2753
				shell=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2754
				break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2755
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2756
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2757
		if [[ "$shell" == ssh ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2758
			# remove backslash escape from :
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2759
			cur=${cur/\\:/:}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2760
			userhost=${cur%%?(\\):*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2761
			path=${cur#*:}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2762
			# unescape spaces
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2763
			path=${path//\\\\\\\\ / }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2764
			if [ -z "$path" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2765
				# default to home dir of specified
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2766
				# user on remote host
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2767
				path=$(ssh -o 'Batchmode yes' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2768
					$userhost pwd 2>/dev/null)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2769
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2770
			# escape spaces; remove executables, aliases, pipes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2771
			# and sockets; add space at end of file names
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2772
			COMPREPLY=( $( ssh -o 'Batchmode yes' $userhost \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2773
				command ls -aF1d "$path*" 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2774
				sed -e 's/ /\\\\\\\ /g' -e 's/[*@|=]$//g' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2775
				-e 's/[^\/]$/& /g' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2776
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2777
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2778
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2779
		_known_hosts -c -a
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2780
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2781
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2782
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2783
 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2784
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2785
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2786
complete -F _rsync $nospace $filenames rsync
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2787
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2788
# Linux route(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2789
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2790
[ $UNAME = Linux ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2791
_route()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2792
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2793
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2794
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2795
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2796
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2797
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2798
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2799
	if [ "$prev" = dev ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2800
	    COMPREPLY=( $( ifconfig -a | sed -ne 's|^\('$cur'[^ ]*\).*$|\1|p' ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2801
	    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2802
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2803
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2804
	COMPREPLY=( $( compgen -W 'add del -host -net netmask metric mss \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2805
				   window irtt reject mod dyn reinstate dev \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2806
				   default gw' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2807
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2808
	COMPREPLY=( $( echo " ${COMP_WORDS[@]}" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2809
		       (while read -d ' ' i; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2810
			   [ "$i" == "" ] && continue
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2811
			   # flatten array with spaces on either side,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2812
			   # otherwise we cannot grep on word
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2813
			   # boundaries of first and last word
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2814
			   COMPREPLY=" ${COMPREPLY[@]} "
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2815
			   # remove word from list of completions
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2816
			   COMPREPLY=( ${COMPREPLY/ $i / } )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2817
			done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2818
		       echo "${COMPREPLY[@]}")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2819
		  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2820
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2821
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2822
[ $UNAME = Linux ] && complete -F _route route
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2823
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2824
# GNU make(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2825
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2826
have make || have gmake || have gnumake || have pmake &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2827
_make()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2828
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2829
	local file makef makef_dir="." makef_inc cur prev i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2830
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2831
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2832
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2833
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2834
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2835
	# --name value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2836
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2837
		-@(f|o|W))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2838
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2839
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2840
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2841
		-@(I|C))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2842
			_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2843
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2844
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2845
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2846
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2847
	# --name=value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2848
	if [[ "$cur" == *=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2849
		prev=${cur/=*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2850
		cur=${cur/*=/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2851
		case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2852
			--@(file|makefile))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2853
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2854
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2855
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2856
			--@(directory|include-dir))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2857
				_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2858
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2859
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2860
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2861
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2862
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2863
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2864
		COMPREPLY=( $( compgen -W '-b -m -B -C -d -e -f -h -i -I\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2865
			-j -l -k -n -o -p -q -r -R - s -S -t -v -w -W \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2866
			--always-make --directory= --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2867
			--environment-overrides --file= --makefile= --help \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2868
			--ignore-errors --include-dir= --jobs --load-average \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2869
			--max-load --keep-going --just-print --dry-run \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2870
			--recon --old-file= --assume-old= --print-data-base \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2871
			--question --no-builtin-rules --no-builtin-variables \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2872
			--silent --quiet --no-keep-goind --stop --touch \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2873
			--version --print-directory --no-print-directory \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2874
			--what-if= --new-file= --assume-new= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2875
			--warn-undefined-variables' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2876
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2877
		# before we check for makefiles, see if a path was specified
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2878
		# with -C
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2879
		for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2880
			if [[ ${COMP_WORDS[i]} == -C ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2881
				# eval for tilde expansion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2882
				eval makef_dir=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2883
				break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2884
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2885
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2886
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2887
		# make reads `GNUmakefile', then `makefile', then `Makefile'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2888
		if [ -f ${makef_dir}/GNUmakefile ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2889
			makef=${makef_dir}/GNUmakefile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2890
		elif [ -f ${makef_dir}/makefile ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2891
			makef=${makef_dir}/makefile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2892
		elif [ -f ${makef_dir}/Makefile ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2893
			makef=${makef_dir}/Makefile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2894
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2895
			makef=${makef_dir}/*.mk	       # local convention
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2896
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2897
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2898
		# before we scan for targets, see if a Makefile name was
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2899
		# specified with -f
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2900
		for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2901
			if [[ ${COMP_WORDS[i]} == -f ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2902
				# eval for tilde expansion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2903
				eval makef=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2904
				break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2905
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2906
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2907
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2908
		[ ! -f $makef ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2909
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2910
		# deal with included Makefiles
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2911
 		makef_inc=$( grep -E '^-?include' $makef | sed -e "s,^.* ,"$makef_dir"/," )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2912
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2913
 		for file in $makef_inc; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2914
 			[ -f $file ] && makef="$makef $file"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2915
 		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2916
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2917
		COMPREPLY=( $( awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2918
				{split($1,A,/ /);for(i in A)print A[i]}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2919
				$makef 2>/dev/null | command grep "^$cur" ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2920
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2921
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2922
complete -f -F _make $filenames make gmake gnumake pmake
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2923
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2924
# GNU tar(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2925
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2926
_tar()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2927
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2928
	local cur ext regex tar untar
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2929
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2930
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2931
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2932
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2933
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2934
		COMPREPLY=( $( compgen -W 'c t x u r d A' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2935
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2936
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2937
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2938
	case "${COMP_WORDS[1]}" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2939
	?(-)[cr]*f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2940
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2941
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2942
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2943
	+([^IZzjy])f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2944
		ext='t@(ar?(.@(Z|gz|bz?(2)))|gz|bz?(2))'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2945
		regex='t\(ar\(\.\(Z\|gz\|bz2\?\)\)\?\|gz\|bz2\?\)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2946
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2947
	*[Zz]*f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2948
		ext='t?(ar.)@(gz|Z)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2949
		regex='t\(ar\.\)\?\(gz\|Z\)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2950
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2951
	*[Ijy]*f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2952
		ext='t?(ar.)bz?(2)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2953
		regex='t\(ar\.\)\?bz2\?'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2954
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2955
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2956
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2957
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2958
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2959
		
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2960
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2961
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2962
	if [[ "$COMP_LINE" == *$ext' ' ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2963
		# complete on files in tar file
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2964
		#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2965
		# get name of tar file from command line
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2966
		tar=$( echo "$COMP_LINE" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2967
			sed -e 's/^.* \([^ ]*'$regex'\) .*$/\1/' )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2968
		# devise how to untar and list it
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2969
		untar=t${COMP_WORDS[1]//[^Izjyf]/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2970
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2971
		COMPREPLY=( $( compgen -W "$( echo $( tar $untar $tar \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2972
				2>/dev/null ) )" -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2973
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2974
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2975
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2976
	# file completion on relevant files
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2977
	_filedir "$ext"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2978
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2979
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2980
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2981
[ -n "${COMP_TAR_INTERNAL_PATHS:-}" ] && complete -F _tar $dirnames tar ||
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2982
	complete -F _tar $filenames tar
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2983
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2984
# jar(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2985
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2986
have jar &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2987
_jar()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2988
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2989
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2990
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2991
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2992
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2993
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2994
	if [ $COMP_CWORD = 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2995
		COMPREPLY=( $( compgen -W 'c t x u' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2996
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2997
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2998
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  2999
	case "${COMP_WORDS[1]}" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3000
		*c*f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3001
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3002
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3003
		*f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3004
			_filedir '?(e|j|w)ar'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3005
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3006
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3007
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3008
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3009
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3010
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3011
complete -F _jar $filenames jar
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3012
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3013
# Linux iptables(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3014
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3015
have iptables &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3016
_iptables()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3017
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3018
	local cur prev table chain
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3019
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3020
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3021
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3022
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3023
	chain='s/^Chain \([^ ]\+\).*$/\1/p'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3024
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3025
	if [[ $COMP_LINE == *-t\ *filter* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3026
		table="-t filter"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3027
	elif [[ $COMP_LINE == *-t\ *nat* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3028
		table="-t nat"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3029
	elif [[ $COMP_LINE == *-t\ *mangle* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3030
		table="-t mangle"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3031
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3032
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3033
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3034
	-*[AIDRPFXLZ])
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3035
		COMPREPLY=( $( compgen -W '`iptables $table -nL | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3036
			    sed -ne "s/^Chain \([^ ]\+\).*$/\1/p"`' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3037
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3038
	-*t)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3039
		COMPREPLY=( $( compgen -W 'nat filter mangle' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3040
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3041
	-j)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3042
		if [ "$table" = "-t filter" -o "$table" = "" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3043
		    COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3044
		    `iptables $table -nL | sed -ne "$chain" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3045
		    -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3046
		    $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3047
		elif [ "$table" = "-t nat" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3048
		    COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3049
		    MIRROR SNAT DNAT MASQUERADE `iptables $table -nL | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3050
		    sed -ne "$chain" -e "s/OUTPUT|PREROUTING|POSTROUTING//"`' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3051
		    -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3052
		elif [ "$table" = "-t mangle" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3053
		    COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3054
		    MARK TOS `iptables $table -nL | sed -ne "$chain" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3055
		    -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3056
		    $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3057
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3058
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3059
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3060
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3061
		    COMPREPLY=( $( compgen -W '-i -o -s -d -p -f -m --append \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3062
		    --delete --insert --replace --list --flush --zero --new \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3063
		    --delete-chain --policy --rename-chain --proto --source \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3064
		    --destination --in-interface --jump --match --numeric \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3065
		    --out-interface --table --verbose --line-numbers --exact \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3066
		    --fragment --modprobe= --set-counters --version' -- "$cur") )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3067
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3068
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3069
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3070
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3071
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3072
complete -F _iptables iptables
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3073
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3074
# tcpdump(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3075
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3076
have tcpdump &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3077
_tcpdump()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3078
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3079
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3080
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3081
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3082
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3083
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3084
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3085
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3086
		-@(r|w|F))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3087
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3088
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3089
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3090
		-i)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3091
			_available_interfaces -a
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3092
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3093
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3094
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3095
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3096
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3097
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3098
		COMPREPLY=( $( compgen -W '-a -d -e -f -l -n -N -O -p \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3099
			-q -R -S -t -u -v -x -C -F -i -m -r -s -T -w \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3100
			-E' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3101
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3102
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3103
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3104
complete -F _tcpdump tcpdump
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3105
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3106
# autorpm(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3107
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3108
have autorpm &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3109
_autorpm()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3110
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3111
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3112
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3113
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3114
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3115
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3116
	COMPREPLY=( $( compgen -W '--notty --debug --help --version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3117
				   auto add fullinfo info help install list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3118
				   remove set' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3119
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3120
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3121
complete -F _autorpm autorpm
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3122
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3123
# This meta-cd function observes the CDPATH variable, so that cd additionally
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3124
# completes on directories under those specified in CDPATH.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3125
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3126
_cd()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3127
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3128
	local IFS=$'\t\n' cur=`_get_cword` i j k
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3129
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3130
	# try to allow variable completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3131
	if [[ "$cur" == ?(\\)\$* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3132
		COMPREPLY=( $( compgen -v -P '$' -- "${cur#?(\\)$}" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3133
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3134
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3135
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3136
	# Use standard dir completion if no CDPATH or parameter starts with /,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3137
	# ./ or ../
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3138
	if [ -z "${CDPATH:-}" ] || [[ "$cur" == ?(.)?(.)/* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3139
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3140
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3141
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3142
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3143
	local -r mark_dirs=$(_rl_enabled mark-directories && echo y)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3144
	local -r mark_symdirs=$(_rl_enabled mark-symlinked-directories && echo y)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3145
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3146
	# we have a CDPATH, so loop on its contents
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3147
	for i in ${CDPATH//:/$'\t'}; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3148
		# create an array of matched subdirs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3149
		k="${#COMPREPLY[@]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3150
		for j in $( compgen -d $i/$cur ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3151
			if [[ ( $mark_symdirs && -h $j || $mark_dirs && ! -h $j ) && ! -d ${j#$i/} ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3152
				j="${j}/"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3153
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3154
			COMPREPLY[k++]=${j#$i/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3155
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3156
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3157
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3158
	_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3159
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3160
	if [[ ${#COMPREPLY[@]} -eq 1 ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3161
	    i=${COMPREPLY[0]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3162
	    if [ "$i" == "$cur" ] && [[ $i != "*/" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3163
		COMPREPLY[0]="${i}/"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3164
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3165
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3166
	    
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3167
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3168
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3169
if shopt -q cdable_vars; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3170
    complete -v -F _cd $nospace $filenames cd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3171
else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3172
    complete -F _cd $nospace $filenames cd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3173
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3174
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3175
_remove_comp_word()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3176
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3177
	if [[ COMP_CWORD -eq 0 ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3178
		return
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3179
	elif [[ ${#COMP_WORDS[@]} -ge 2 ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3180
		local old_cw0="${COMP_WORDS[0]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3181
		local new_cw0="${COMP_WORDS[1]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3182
		local old_length="${#COMP_LINE}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3183
		COMP_LINE=${COMP_LINE#${old_cw0}}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3184
		local head=${COMP_LINE:0:${#new_cw0}}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3185
		local i=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3186
		while [[ $head != $new_cw0 ]]; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3187
			COMP_LINE=${COMP_LINE:1}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3188
			head=${COMP_LINE:0:${#new_cw0}}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3189
			if (( ++i > 10 )); then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3190
				break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3191
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3192
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3193
		local new_length="${#COMP_LINE}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3194
		COMP_POINT=$(( COMP_POINT + new_length - old_length))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3195
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3196
		COMP_CWORD=$(( COMP_CWORD - 1 ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3197
		for (( i=0; i < ${#COMP_WORDS[@]} - 1; ++i )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3198
			COMP_WORDS[i]="${COMP_WORDS[i+1]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3199
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3200
		unset COMP_WORDS[${#COMP_WORDS[@]}-1]
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3201
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3202
		return
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3203
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3204
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3205
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3206
# A meta-command completion function for commands like sudo(8), which need to
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3207
# first complete on a command, then complete according to that command's own
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3208
# completion definition - currently not quite foolproof (e.g. mount and umount
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3209
# don't work properly), but still quite useful.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3210
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3211
_command()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3212
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3213
	local cur func cline cspec noglob cmd done i \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3214
	      _COMMAND_FUNC _COMMAND_FUNC_ARGS
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3215
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3216
	_remove_comp_word
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3217
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3218
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3219
	# If the the first arguments following our meta-command-invoker are
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3220
	# switches, get rid of them. Most definitely not foolproof.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3221
	done=
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3222
	while [ -z $done ] ; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3223
	    cmd=${COMP_WORDS[0]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3224
	    if [[ "$cmd" == -* ]] && [ $COMP_CWORD -ge 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3225
	        _remove_comp_word
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3226
	    elif [[ "$cmd" == -* ]] && [[ $COMP_CWORD -eq 0 ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3227
		return
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3228
	    else 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3229
		done=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3230
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3231
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3232
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3233
	if [ $COMP_CWORD -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3234
		COMPREPLY=( $( compgen -c -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3235
	elif complete -p $cmd &>/dev/null; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3236
		cspec=$( complete -p $cmd )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3237
		if [ "${cspec#* -F }" != "$cspec" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3238
			# COMP_CWORD and COMP_WORDS() are not read-only,
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3239
			# so we can set them before handing off to regular
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3240
			# completion routine
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3241
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3242
			# get function name
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3243
			func=${cspec#*-F }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3244
			func=${func%% *}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3245
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3246
			if [[ ${#COMP_WORDS[@]} -ge 2 ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3247
				$func $cmd "${COMP_WORDS[${#COMP_WORDS[@]}-1]}" "${COMP_WORDS[${#COMP_WORDS[@]}-2]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3248
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3249
				$func $cmd "${COMP_WORDS[${#COMP_WORDS[@]}-1]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3250
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3251
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3252
			# remove any \: generated by a command that doesn't
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3253
			# default to filenames or dirnames (e.g. sudo chown)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3254
			# FIXME: I'm pretty sure this does not work!
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3255
			if [ "${cspec#*-o }" != "$cspec" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3256
				cspec=${cspec#*-o }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3257
				cspec=${cspec%% *}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3258
				if [[ "$cspec" != @(dir|file)names ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3259
					COMPREPLY=("${COMPREPLY[@]//\\\\:/:}")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3260
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3261
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3262
		elif [ -n "$cspec" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3263
			cspec=${cspec#complete};
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3264
			cspec=${cspec%%$cmd};
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3265
			COMPREPLY=( $( eval compgen "$cspec" -- "$cur" ) );
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3266
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3267
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3268
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3269
	[ ${#COMPREPLY[@]} -eq 0 ] && _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3270
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3271
complete -F _command $filenames nohup exec nice eval strace time ltrace then \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3272
	else do vsound command xargs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3273
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3274
_root_command()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3275
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3276
	PATH=/usr/gnu/bin:$PATH:/sbin:/usr/sbin _command $1 $2 $3
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3277
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3278
complete -F _root_command $filenames sudo fakeroot really
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3279
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3280
# ant(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3281
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3282
have ant && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3283
_ant()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3284
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3285
	local cur prev buildfile i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3286
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3287
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3288
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3289
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3290
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3291
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3292
		-buildfile|-f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3293
			_filedir 'xml'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3294
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3295
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3296
		-logfile)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3297
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3298
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3299
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3300
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3301
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3302
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3303
		# relevant options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3304
		COMPREPLY=( $( compgen -W '-help -projecthelp -version -quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3305
			       -verbose -debug -emacs -logfile -logger \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3306
			       -listener -buildfile -f -D -find' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3307
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3308
		# available targets completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3309
		# find which buildfile to use
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3310
		buildfile=build.xml
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3311
		for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3312
			if [[ "${COMP_WORDS[i]}" == -buildfile ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3313
				buildfile=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3314
				break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3315
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3316
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3317
		[ ! -f $buildfile ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3318
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3319
		# parse buildfile for targets
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3320
		COMPREPLY=( $( awk -F'"' '/<target name="/ {print $2}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3321
				$buildfile | grep "^$cur" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3322
			    $( awk -F"'" "/<target name='/ "'{print $2}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3323
				$buildfile | grep "^$cur" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3324
			    $( awk -F'"' '/<target [^n]/ {if ($1 ~ /name=/) { print $2 } else if ($3 ~ /name=/) {print $4} else if ($5 ~ /name=/) {print $6}}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3325
				$buildfile | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3326
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3327
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3328
have complete-ant-cmd.pl && \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3329
     complete -C complete-ant-cmd.pl -F _ant $filenames ant || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3330
     complete -F _ant $filenames ant
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3331
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3332
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3333
have nslookup &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3334
_nslookup()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3335
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3336
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3337
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3338
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3339
	cur=${COMP_WORDS[COMP_CWORD]#-}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3340
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3341
	COMPREPLY=( $( compgen -P '-' -W 'all class= debug d2 domain= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3342
			       srchlist= defname search port= querytype= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3343
			       type= recurse retry root timeout vc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3344
			       ignoretc' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3345
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3346
complete -F _nslookup nslookup
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3347
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3348
# mysqladmin(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3349
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3350
have mysqladmin &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3351
_mysqladmin()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3352
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3353
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3354
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3355
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3356
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3357
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3358
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3359
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3360
	-u)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3361
		COMPREPLY=( $( compgen -u -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3362
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3363
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3364
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3365
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3366
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3367
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3368
	COMPREPLY=( $( compgen -W '-# -f -? -C -h -p -P -i -r -E -s -S -t -u \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3369
					      -v -V -w' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3370
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3371
	COMPREPLY=( "${COMPREPLY[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3372
		    $( compgen -W 'create drop extended-status flush-hosts \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3373
				   flush-logs flush-status flush-tables \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3374
				   flush-threads flush-privileges kill \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3375
				   password ping processlist reload refresh \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3376
				   shutdown status variables version' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3377
		       -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3378
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3379
complete -F _mysqladmin mysqladmin
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3380
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3381
# gzip(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3382
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3383
have gzip &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3384
_gzip()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3385
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3386
	local cur prev xspec IFS=$'\t\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3387
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3388
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3389
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3390
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3391
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3392
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3393
		COMPREPLY=( $( compgen -W '-c -d -f \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3394
			-h -l -L -n -N -q -r -S -t -v -V \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3395
			-1 -2 -3 -4 -5 -6 -7 -8 -9 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3396
			--stdout --decompress --force --help --list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3397
			--license --no-name --name --quiet --recursive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3398
			--suffix --test --verbose --version --fast \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3399
			--best' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3400
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3401
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3402
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3403
	xspec="*.?(t)gz"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3404
	if [[ "$prev" == --* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3405
		[[ "$prev" == --decompress || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3406
			"$prev" == --list || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3407
			"$prev" == --test ]] && xspec="!"$xspec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3408
		[[ "$prev" == --force ]] && xspec=
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3409
	elif [[ "$prev" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3410
		[[ "$prev" == -*[dlt]* ]] && xspec="!"$xspec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3411
		[[ "$prev" == -*f* ]] && xspec=
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3412
	elif [ "$prev" = '>' ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3413
		xspec=
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3414
	elif [ "$prev" = '<' ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3415
		xspec=
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3416
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3417
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3418
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3419
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3420
	COMPREPLY=( $( compgen -f -X "$xspec" -- $cur ) \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3421
		    $( compgen -d -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3422
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3423
complete -F _gzip $filenames gzip
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3424
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3425
# bzip2(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3426
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3427
have bzip2 &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3428
_bzip2()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3429
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3430
	local cur prev xspec IFS=$'\t\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3431
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3432
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3433
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3434
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3435
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3436
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3437
		COMPREPLY=( $( compgen -W '-c -d -f -h -k -L -q -s \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3438
			-t -v -V -z -1 -2 -3 -4 -5 -6 -7 -8 -9 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3439
			--help --decompress --compress --keep --force \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3440
			--test --stdout --quiet --verbose --license \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3441
			--version --small --fast --best' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3442
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3443
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3444
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3445
	xspec="*.bz2"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3446
	if [[ "$prev" == --* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3447
		[[ "$prev" == --decompress || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3448
			"$prev" == --list || \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3449
			"$prev" == --test ]] && xspec="!"$xspec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3450
		[[ "$prev" == --compress ]] && xspec=
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3451
	elif [[ "$prev" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3452
		[[ "$prev" == -*[dt]* ]] && xspec="!"$xspec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3453
		[[ "$prev" == -*z* ]] && xspec=
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3454
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3455
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3456
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3457
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3458
	COMPREPLY=( $( compgen -f -X "$xspec" -- $cur ) \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3459
		    $( compgen -d -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3460
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3461
complete -F _bzip2 $filenames bzip2
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3462
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3463
# openssl(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3464
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3465
have openssl && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3466
_openssl_sections()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3467
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3468
	local config
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3469
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3470
	config=/etc/ssl/openssl.cnf
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3471
	[ ! -f $config ] && config=/usr/share/ssl/openssl.cnf
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3472
	for (( i=2; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3473
		if [[ "${COMP_WORDS[i]}" == -config ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3474
			config=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3475
			break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3476
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3477
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3478
	[ ! -f $config ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3479
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3480
	COMPREPLY=( $( awk '/\[.*\]/ {print $2} ' $config | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3481
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3482
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3483
_openssl()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3484
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3485
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3486
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3487
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3488
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3489
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3490
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3491
		COMPREPLY=( $( compgen -W 'asn1parse ca ciphers crl crl2pkcs7 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3492
			dgst dh dhparam dsa dsaparam enc errstr gendh gendsa \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3493
			genrsa nseq passwd pkcs12 pkcs7 pkcs8 rand req rsa \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3494
			rsautl s_client s_server s_time sess_id smime speed \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3495
			spkac verify version x509 md2 md4 md5 mdc2 rmd160 sha \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3496
			sha1 base64 bf bf-cbc bf-cfb bf-ecb bf-ofb cast \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3497
			cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb des \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3498
			des-cbc des-cfb des-ecb des-ede des-ede-cbc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3499
			des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3500
			des-ede3-cfb des-ede3-ofb des-ofb des3 desx rc2 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3501
			rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3502
			rc4 rc4-40' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3503
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3504
		prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3505
		case ${COMP_WORDS[1]} in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3506
			asn1parse)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3507
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3508
					-inform)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3509
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3510
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3511
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3512
					-@(in|out|oid))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3513
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3514
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3515
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3516
					esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3517
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3518
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3519
					COMPREPLY=( $( compgen -W '-inform -in -out -noout -offset \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3520
						-length -i -oid -strparse' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3521
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3522
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3523
			ca)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3524
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3525
					-@(config|revoke|cert|in|out|spkac|ss_cert))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3526
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3527
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3528
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3529
					-outdir)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3530
						_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3531
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3532
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3533
					-@(name|crlexts|extensions))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3534
						_openssl_sections
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3535
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3536
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3537
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3538
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3539
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3540
					COMPREPLY=( $( compgen -W '-verbose -config -name \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3541
						-gencrl -revoke -crldays -crlhours -crlexts \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3542
						-startdate -enddate -days -md -policy -keyfile \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3543
						-key -passin -cert -in -out -notext -outdir \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3544
						-infiles -spkac -ss_cert -preserveDN -batch \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3545
						-msie_hack -extensions' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3546
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3547
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3548
			ciphers)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3549
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3550
					COMPREPLY=( $( compgen -W '-v -ssl2 -ssl3 -tls1' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3551
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3552
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3553
			crl)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3554
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3555
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3556
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3557
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3558
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3559
					-@(in|out|CAfile))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3560
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3561
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3562
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3563
					-CAPath)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3564
						_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3565
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3566
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3567
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3568
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3569
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3570
					COMPREPLY=( $( compgen -W '-inform -outform -text -in -out -noout \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3571
						-hash -issuer -lastupdate -nextupdate -CAfile -CApath' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3572
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3573
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3574
			crl2pkcs7)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3575
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3576
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3577
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3578
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3579
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3580
					-@(in|out))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3581
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3582
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3583
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3584
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3585
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3586
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3587
					COMPREPLY=( $( compgen -W '-inform -outform -in -out -print_certs' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3588
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3589
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3590
			dgst)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3591
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3592
					-@(out|sign|verify|prvrify|signature))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3593
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3594
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3595
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3596
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3597
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3598
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3599
					COMPREPLY=( $( compgen -W '-md5 -md4 -md2 -sha1 -sha -mdc2 -ripemd160 -dss1 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3600
						-c -d -hex -binary -out -sign -verify -prverify -signature' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3601
				else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3602
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3603
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3604
			       ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3605
			dsa)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3606
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3607
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3608
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3609
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3610
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3611
					-@(in|out))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3612
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3613
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3614
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3615
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3616
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3617
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3618
					COMPREPLY=( $( compgen -W '-inform -outform -in -passin -out -passout -des -des3 -idea -text -noout \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3619
						-modulus -pubin -pubout' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3620
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3621
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3622
			dsaparam)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3623
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3624
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3625
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3626
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3627
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3628
					-@(in|out|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3629
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3630
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3631
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3632
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3633
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3634
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3635
					COMPREPLY=( $( compgen -W '-inform -outform -in -out -noout \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3636
						-text -C -rand -genkey' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3637
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3638
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3639
			enc)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3640
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3641
					-@(in|out|kfile))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3642
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3643
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3644
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3645
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3646
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3647
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3648
					COMPREPLY=( $( compgen -W '-ciphername -in -out -pass \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3649
						-e -d -a -A -k -kfile -S -K -iv -p -P -bufsize -debug' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3650
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3651
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3652
			dhparam)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3653
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3654
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3655
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3656
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3657
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3658
					-@(in|out|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3659
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3660
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3661
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3662
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3663
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3664
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3665
					COMPREPLY=( $( compgen -W '-inform -outform -in -out -dsaparam -noout \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3666
						-text -C -2 -5 -rand' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3667
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3668
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3669
			gendsa)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3670
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3671
					-@(out|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3672
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3673
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3674
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3675
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3676
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3677
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3678
					COMPREPLY=( $( compgen -W '-out -des -des3 -idea -rand' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3679
				else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3680
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3681
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3682
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3683
			genrsa)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3684
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3685
					-@(out|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3686
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3687
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3688
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3689
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3690
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3691
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3692
					COMPREPLY=( $( compgen -W '-out -passout -des -des3 -idea -f4 -3 -rand' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3693
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3694
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3695
			pkcs7)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3696
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3697
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3698
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3699
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3700
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3701
					-@(in|out))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3702
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3703
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3704
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3705
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3706
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3707
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3708
					COMPREPLY=( $( compgen -W '-inform -outform -in -out -print_certs -text -noout' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3709
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3710
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3711
			rand)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3712
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3713
					-@(out|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3714
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3715
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3716
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3717
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3718
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3719
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3720
					COMPREPLY=( $( compgen -W '-out -rand -base64' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3721
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3722
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3723
			req)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3724
				case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3725
					-@(in|out|key)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3726
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3727
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3728
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3729
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3730
					-@(in|out|rand|key|keyout|config))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3731
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3732
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3733
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3734
					-extensions)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3735
						_openssl_sections
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3736
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3737
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3738
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3739
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3740
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3741
					COMPREPLY=( $( compgen -W '-inform -outform -in \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3742
						-passin -out -passout -text -noout -verify \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3743
						-modulus -new -rand -newkey -newkey -nodes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3744
						-key -keyform -keyout -md5 -sha1 -md2 -mdc2 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3745
						-config -x509 -days -asn1-kludge -newhdr \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3746
						-extensions -reqexts section' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3747
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3748
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3749
			rsa)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3750
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3751
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3752
						COMPREPLY=( $( compgen -W 'DER NET PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3753
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3754
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3755
					-@(in|out))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3756
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3757
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3758
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3759
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3760
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3761
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3762
					COMPREPLY=( $( compgen -W '-inform -outform -in -passin -out -passout \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3763
						-sgckey -des -des3 -idea -text -noout -modulus -check -pubin \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3764
						-pubout -engine' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3765
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3766
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3767
			rsautl)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3768
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3769
					-@(in|out|inkey))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3770
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3771
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3772
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3773
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3774
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3775
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3776
					COMPREPLY=( $( compgen -W '-in -out -inkey -pubin -certin -sign -verify \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3777
						-encrypt -decrypt -pkcs -ssl -raw -hexdump -asn1parse' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3778
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3779
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3780
			s_client)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3781
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3782
					-connect)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3783
						_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3784
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3785
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3786
					-@(cert|key|CAfile|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3787
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3788
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3789
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3790
					-CApath)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3791
						_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3792
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3793
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3794
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3795
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3796
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3797
					COMPREPLY=( $( compgen -W '-connect -verify -cert -key -CApath -CAfile \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3798
						-reconnect -pause -showcerts -debug -msg -nbio_test -state -nbio \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3799
						-crlf -ign_eof -quiet -ssl2 -ssl3 -tls1 -no_ssl2 -no_ssl3 -no_tls1 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3800
						-bugs -cipher -starttls -engine -rand' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3801
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3802
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3803
			s_server)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3804
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3805
					-@(cert|key|dcert|dkey|dhparam|CAfile|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3806
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3807
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3808
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3809
					-CApath)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3810
						_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3811
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3812
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3813
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3814
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3815
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3816
					COMPREPLY=( $( compgen -W '-accept -context -verify -Verify -cert -key \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3817
						 -dcert -dkey -dhparam -nbio -nbio_test -crlf -debug -msg -state -CApath \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3818
						 -CAfile -nocert -cipher -quiet -no_tmp_rsa -ssl2 -ssl3 -tls1 -no_ssl2 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3819
						 -no_ssl3 -no_tls1 -no_dhe -bugs -hack -www -WWW -HTTP -engine -id_prefix \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3820
						 -rand' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3821
				 fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3822
				 ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3823
			s_time)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3824
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3825
					-connect)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3826
						_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3827
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3828
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3829
					-@(cert|key|CAfile))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3830
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3831
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3832
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3833
					-CApath)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3834
						_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3835
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3836
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3837
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3838
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3839
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3840
					COMPREPLY=( $( compgen -W '-connect -www -cert -key -CApath -CAfile -reuse \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3841
						-new -verify -nbio -time -ssl2 -ssl3 -bugs -cipher' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3842
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3843
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3844
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3845
			sess_id) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3846
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3847
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3848
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3849
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3850
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3851
					-@(in|out))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3852
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3853
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3854
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3855
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3856
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3857
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3858
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3859
					COMPREPLY=( $( compgen -W '-inform -outform -in -out -text -noout \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3860
						-context ID' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3861
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3862
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3863
			smime)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3864
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3865
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3866
						COMPREPLY=( $( compgen -W 'SMIME DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3867
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3868
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3869
					-@(in|out|certfile|signer|recip|inkey|content|rand))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3870
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3871
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3872
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3873
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3874
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3875
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3876
					COMPREPLY=( $( compgen -W '-encrypt -decrypt -sign -verify -pk7out -des -des3 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3877
						-rc2-40 -rc2-64 -rc2-128 -aes128 -aes192 -aes256 -in -certfile -signer \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3878
						-recip -inform -passin -inkey -out -outform -content -to -from -subject \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3879
						-text -rand' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3880
				else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3881
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3882
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3883
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3884
			speed)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3885
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3886
					COMPREPLY=( $( compgen -W '-engine' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3887
				else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3888
					COMPREPLY=( $( compgen -W 'md2 mdc2 md5 hmac sha1 rmd160 idea-cbc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3889
						rc2-cbc rc5-cbc bf-cbc des-cbc des-ede3 rc4 rsa512 rsa1024 rsa2048 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3890
						rsa4096 dsa512 dsa1024 dsa2048 idea rc2 des rsa blowfish' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3891
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3892
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3893
			verify)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3894
				case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3895
					-@(CAfile|untrusted))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3896
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3897
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3898
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3899
					-CApath)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3900
						_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3901
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3902
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3903
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3904
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3905
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3906
					COMPREPLY=( $( compgen -W '-CApath -CAfile -purpose -untrusted -help -issuer_checks \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3907
						-verbose -certificates' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3908
				else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3909
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3910
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3911
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3912
			x509)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3913
				case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3914
					-@(in|out|CA|CAkey|CAserial|extfile))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3915
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3916
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3917
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3918
					-@(in|out)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3919
						COMPREPLY=( $( compgen -W 'DER PEM NET' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3920
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3921
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3922
					-@(key|CA|CAkey)form)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3923
						COMPREPLY=( $( compgen -W 'DER PEM' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3924
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3925
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3926
					-extensions)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3927
						_openssl_sections
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3928
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3929
						;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3930
				esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3931
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3932
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3933
					COMPREPLY=( $( compgen -W '-inform -outform \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3934
						-keyform -CAform -CAkeyform -in -out \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3935
						-serial -hash -subject -issuer -nameopt \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3936
						-email -startdate -enddate -purpose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3937
						-dates -modulus -fingerprint -alias \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3938
						-noout -trustout -clrtrust -clrreject \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3939
						-addtrust -addreject -setalias -days \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3940
						-set_serial -signkey -x509toreq -req \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3941
						-CA -CAkey -CAcreateserial -CAserial \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3942
						-text -C -md2 -md5 -sha1 -mdc2 -clrext \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3943
						-extfile -extensions -engine' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3944
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3945
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3946
			@(md5|md4|md2|sha1|sha|mdc2|ripemd160))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3947
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3948
					COMPREPLY=( $( compgen -W '-c -d' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3949
				else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3950
						_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3951
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3952
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3953
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3954
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3955
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3956
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3957
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3958
complete -F _openssl $default openssl
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3959
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3960
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3961
# screen(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3962
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3963
have screen &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3964
_screen()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3965
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3966
	local cur prev preprev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3967
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3968
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3969
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3970
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3971
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3972
	[ "$COMP_CWORD" -ge 2 ] && preprev=${COMP_WORDS[COMP_CWORD-2]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3973
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3974
	if [ "$preprev" = "-d" -o "$preprev" = "-D" -a "$prev" = "-r" -o \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3975
	     "$prev" = "-R" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3976
		# list all
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3977
		COMPREPLY=( $( command screen -ls | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3978
				sed -ne 's|^['$'\t'']\+\('$cur'[0-9]\+\.[^'$'\t'']\+\).*$|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3979
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3980
		case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3981
		-[rR])
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3982
			# list detached
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3983
			COMPREPLY=( $( command screen -ls | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3984
					sed -ne 's|^['$'\t'']\+\('$cur'[0-9]\+\.[^'$'\t'']\+\).*Detached.*$|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3985
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3986
		-[dDx])
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3987
			# list attached
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3988
			COMPREPLY=( $( command screen -ls | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3989
					sed -ne 's|^['$'\t'']\+\('$cur'[0-9]\+\.[^'$'\t'']\+\).*Attached.*$|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3990
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3991
		-s)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3992
			# shells
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3993
			COMPREPLY=( $( grep ^${cur:-[^#]} /etc/shells ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3994
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3995
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3996
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3997
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3998
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  3999
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4000
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4001
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4002
complete -F _screen $default screen
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4003
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4004
# lftp(1) bookmark completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4005
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4006
have lftp &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4007
_lftp()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4008
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4009
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4010
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4011
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4012
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4013
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4014
	if [ $COMP_CWORD -eq 1 ] && [ -f ~/.lftp/bookmarks ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4015
	    COMPREPLY=( $( compgen -W '$( sed -ne "s/^\(.*\)'$'\t''.*$/\1/p" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4016
			   ~/.lftp/bookmarks )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4017
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4018
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4019
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4020
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4021
complete -F _lftp $default lftp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4022
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4023
# ncftp(1) bookmark completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4024
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4025
have ncftp &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4026
_ncftp()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4027
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4028
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4029
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4030
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4031
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4032
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4033
	if [ $COMP_CWORD -eq 1 ] && [ -f ~/.ncftp/bookmarks ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4034
	    COMPREPLY=( $( compgen -W '$( sed -ne "s/^\([^,]\{1,\}\),.*$/\1/p" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4035
			   ~/.ncftp/bookmarks )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4036
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4037
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4038
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4039
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4040
complete -F _ncftp $default ncftp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4041
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4042
# gdb(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4043
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4044
have gdb &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4045
_gdb()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4046
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4047
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4048
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4049
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4050
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4051
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4052
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4053
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4054
		COMPREPLY=( $( compgen -c -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4055
	elif [ $COMP_CWORD -eq 2 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4056
		prev=${prev##*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4057
		COMPREPLY=( $( compgen -fW "$( command ps axo comm,pid | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4058
				awk '{if ($1 ~ /^'"$prev"'/) print $2}' ) )" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4059
				-- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4060
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4061
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4062
complete -F _gdb $filenames gdb
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4063
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4064
# Postgresql completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4065
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4066
have psql && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4067
_pg_databases() 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4068
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4069
	return
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4070
	COMPREPLY=( $( psql -l 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4071
			sed -e '1,/^-/d' -e '/^(/,$d' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4072
			awk '{print $1}' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4073
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4074
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4075
_pg_users()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4076
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4077
	#COMPREPLY=( $( psql -qtc 'select usename from pg_user' template1 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4078
	#		grep "^ $cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4079
	#[ ${#COMPREPLY[@]} -eq 0 ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4080
	COMPREPLY=( $( compgen -u -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4081
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4082
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4083
# createdb(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4084
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4085
_createdb() 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4086
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4087
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4088
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4089
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4090
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4091
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4092
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4093
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4094
	-@(h|-host=)) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4095
		_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4096
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4097
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4098
	-@(U|-username=))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4099
		_pg_users
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4100
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4101
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4102
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4103
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4104
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4105
		COMPREPLY=( $( compgen -W '-D -T -E -h -p -U -W -e -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4106
			--location= --template= --encoding= --host= --port= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4107
			--username= --password --echo --quiet --help' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4108
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4109
		_pg_databases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4110
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4111
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4112
complete -F _createdb $default createdb
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4113
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4114
# dropdb(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4115
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4116
_dropdb() 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4117
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4118
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4119
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4120
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4121
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4122
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4123
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4124
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4125
	-@(h|-host=)) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4126
		_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4127
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4128
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4129
	-@(U|-username=))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4130
		_pg_users
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4131
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4132
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4133
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4134
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4135
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4136
		COMPREPLY=( $( compgen -W '-h -p -U -W -e -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4137
				--host= --port= --username= --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4138
				--interactive --echo --quiet --help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4139
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4140
		_pg_databases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4141
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4142
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4143
complete -F _dropdb $default dropdb
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4144
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4145
# psql(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4146
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4147
_psql() 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4148
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4149
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4150
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4151
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4152
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4153
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4154
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4155
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4156
	-h|--host) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4157
		_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4158
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4159
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4160
	-U|--username)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4161
		_pg_users
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4162
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4163
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4164
	-d|--dbname)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4165
		_pg_databases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4166
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4167
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4168
	-@(o|f)|--output|--file)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4169
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4170
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4171
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4172
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4173
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4174
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4175
		# return list of available options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4176
		COMPREPLY=( $( compgen -W '-a --echo-all -A --no-align \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4177
			-c --command -d --dbname -e --echo-queries \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4178
			-E --echo-hidden -f --file -F --filed-separator \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4179
			-h --host -H --html -l --list -n -o --output \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4180
			-p --port -P --pset -q -R --record-separator \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4181
			-s --single-step -S --single-line -t --tuples-only \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4182
			-T --table-attr -U --username -v --variable \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4183
			-V --version -W --password -x --expanded -X --nopsqlrc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4184
			-? --help ' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4185
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4186
		# return list of available databases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4187
		_pg_databases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4188
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4189
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4190
complete -F _psql $default psql
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4191
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4192
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4193
_longopt()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4194
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4195
	local cur opt
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4196
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4197
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4198
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4199
	if [[ "$cur" == --*=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4200
		opt=${cur%%=*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4201
		# cut backslash that gets inserted before '=' sign
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4202
		opt=${opt%\\*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4203
		cur=${cur#*=}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4204
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4205
		COMPREPLY=( $( compgen -P "$opt=" -W '${COMPREPLY[@]}' -- $cur))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4206
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4207
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4208
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4209
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4210
		COMPREPLY=( $( $1 --help 2>&1 | sed -e '/--/!d' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4211
				-e 's/.*\(--[-A-Za-z0-9]\+=\?\).*/\1/' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4212
			       command grep "^$cur" | sort -u ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4213
	elif [[ "$1" == @(mk|rm)dir ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4214
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4215
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4216
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4217
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4218
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4219
# makeinfo and texi2dvi are defined elsewhere.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4220
for i in a2ps autoconf automake bc gprof ld nm objcopy objdump readelf strip \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4221
	 bison cpio diff patch enscript cp df dir du ln ls mkfifo mknod mv rm \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4222
	 touch vdir awk gperf grep grub indent less m4 sed shar date \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4223
	 tee who texindex cat csplit cut expand fmt fold head \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4224
	 md5sum nl od paste pr ptx sha1sum sort split tac tail tr unexpand \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4225
	 uniq wc ldd bash id irb mkdir rmdir; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4226
  have $i && complete -F _longopt $filenames $i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4227
done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4228
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4229
# These commands use filenames, so '-o filenames' is not needed.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4230
for i in env netstat seq uname units wget; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4231
  have $i && complete -F _longopt $default $i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4232
done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4233
unset i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4234
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4235
# gcc(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4236
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4237
# The only unusual feature is that we don't parse "gcc --help -v" output
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4238
# directly, because that would include the options of all the other backend
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4239
# tools (linker, assembler, preprocessor, etc) without any indication that
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4240
# you cannot feed such options to the gcc driver directly.  (For example, the
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4241
# linker takes a -z option, but you must type -Wl,-z for gcc.)  Instead, we
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4242
# ask the driver ("g++") for the name of the compiler ("cc1"), and parse the
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4243
# --help output of the compiler.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4244
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4245
have gcc &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4246
_gcc()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4247
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4248
	local cur cc backend
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4249
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4250
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4251
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4252
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4253
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4254
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4255
	case "$1" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4256
	gcj)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4257
		backend=jc1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4258
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4259
	gpc)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4260
		backend=gpc1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4261
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4262
	*77)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4263
		backend=f771
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4264
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4265
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4266
		backend=cc1	# (near-)universal backend
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4267
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4268
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4269
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4270
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4271
		cc=$( $1 -print-prog-name=$backend )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4272
		# sink stderr:
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4273
		# for C/C++/ObjectiveC it's useless
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4274
		# for FORTRAN/Java it's an error
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4275
		COMPREPLY=( $( $cc --help 2>/dev/null | tr '\t' ' ' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4276
			       sed -e '/^  *-/!d' -e 's/ *-\([^ ]*\).*/-\1/' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4277
			       command grep "^$cur" | sort -u ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4278
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4279
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4280
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4281
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4282
complete $filenames -F _gcc gcc g++ c++ g77 gcj gpc
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4283
[ $UNAME = GNU -o $UNAME = Linux -o $UNAME = Cygwin ] && \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4284
[ -n "${have:-}" ] && complete $filenames -F _gcc cc
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4285
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4286
# Linux cardctl(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4287
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4288
have cardctl &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4289
_cardctl()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4290
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4291
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4292
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4293
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4294
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4295
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4296
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4297
		COMPREPLY=( $( compgen -W 'status config ident suspend \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4298
					   resume reset eject insert scheme' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4299
			       -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4300
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4301
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4302
complete -F _cardctl cardctl
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4303
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4304
# This function is required by _dpkg() and _dpkg-reconfigure()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4305
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4306
have dpkg && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4307
_comp_dpkg_installed_packages()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4308
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4309
	grep -A 1 "Package: $1" /var/lib/dpkg/status | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4310
		grep -B 1 -E "ok installed|half-installed|unpacked| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4311
       			      half-configured|config-files" | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4312
	        grep "Package: $1" | cut -d\  -f2
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4313
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4314
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4315
# Debian dpkg(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4316
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4317
_dpkg()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4318
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4319
	local cur prev i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4320
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4321
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4322
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4323
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4324
	i=$COMP_CWORD
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4325
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4326
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4327
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4328
	# find the last option flag
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4329
	if [[ $cur != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4330
		while [[ $prev != -* && $i != 1 ]]; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4331
			i=$((i-1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4332
			prev=${COMP_WORDS[i-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4333
		done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4334
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4335
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4336
	case "$prev" in 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4337
	-@(c|i|A|I|f|e|x|X|-@(install|unpack|record-avail|contents|info|fsys-tarfile|field|control|extract)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4338
		_filedir '?(u)deb'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4339
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4340
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4341
	-@(b|-build))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4342
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4343
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4344
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4345
   	-@(s|p|l|-@(status|print-avail|list)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4346
		COMPREPLY=( $( apt-cache pkgnames $cur 2>/dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4347
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4348
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4349
	-@(S|-search))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4350
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4351
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4352
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4353
	-@(r|L|P|-@(remove|purge|listfiles)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4354
		COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4355
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4356
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4357
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4358
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4359
	COMPREPLY=( $( compgen -W '-i --install --unpack -A --record-avail \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4360
			--configure -r --remove -P --purge --get-selections \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4361
			--set-selections --update-avail --merge-avail \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4362
			--clear-avail  --command-fd --forget-old-unavail -s \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4363
			--status -p --print-avail -L --listfiles -l --list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4364
			-S --search -C --audit --print-architecture \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4365
			--print-gnu-build-architecture \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4366
			--print-installation-architecture \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4367
			--compare-versions --help --version --force-help \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4368
			--force-all --force-auto-select --force-downgrade \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4369
			--force-configure-any --force-hold --force-bad-path \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4370
			--force-not-root --force-overwrite \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4371
			--force-overwrite-diverted --force-bad-verify \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4372
			--force-depends-version --force-depends \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4373
			--force-confnew --force-confold --force-confdef \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4374
			--force-confmiss --force-conflicts --force-architecture\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4375
			--force-overwrite-dir --force-remove-reinstreq \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4376
			--force-remove-essential -Dh \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4377
			--debug=help --licence --admindir= --root= --instdir= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4378
			-O --selected-only -E --skip-same-version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4379
			-G --refuse-downgrade -B --auto-deconfigure \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4380
			--no-debsig --no-act -D --debug= --status-fd \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4381
			-b --build -I --info -f --field -c --contents \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4382
			-x --extract -X --vextract --fsys-tarfile -e --control \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4383
			--ignore-depends= --abort-after' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4384
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4385
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4386
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4387
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4388
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4389
complete -F _dpkg $filenames dpkg dpkg-deb
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4390
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4391
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4392
# Debian GNU dpkg-reconfigure(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4393
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4394
have dpkg-reconfigure &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4395
_dpkg_reconfigure()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4396
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4397
	local cur prev opt
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4398
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4399
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4400
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4401
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4402
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4403
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4404
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4405
	    -@(f|-frontend))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4406
		opt=( $( echo /usr/share/perl5/Debconf/FrontEnd/* ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4407
		opt=( ${opt[@]##*/} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4408
		opt=( ${opt[@]%.pm} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4409
		COMPREPLY=( $( compgen -W '${opt[@]}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4410
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4411
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4412
	    -@(p|-priority))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4413
  		COMPREPLY=( $( compgen -W 'low medium high critical' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4414
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4415
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4416
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4417
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4418
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4419
	    COMPREPLY=( $( compgen -W '-f --frontend -p --priority -a --all \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4420
				       -u --unseen-only -h --help -s --showold \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4421
				       --force --terse' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4422
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4423
	    COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4424
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4425
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4426
complete -F _dpkg_reconfigure $default dpkg-reconfigure
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4427
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4428
# Debian dpkg-source completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4429
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4430
have dpkg-source &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4431
_dpkg_source()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4432
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4433
	local cur prev options work i action packopts unpackopts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4434
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4435
	packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sp -su -sr -ss -sn -sA -sK -sP -sU -sR"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4436
	unpackopts="-sp -sn -su"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4437
	options=`echo "-x -b $packopts $unpackopts" | xargs echo | sort -u | xargs echo`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4438
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4439
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4440
	if [ "$1" != "dpkg-source" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4441
		exit 1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4442
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4443
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4444
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4445
	action="options"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4446
	for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4447
		if [[ ${COMP_WORDS[$i]} == "-x" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4448
			action=unpack
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4449
		elif [[ ${COMP_WORDS[$i]} == "-b" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4450
			action=pack
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4451
		elif [[ ${COMP_WORDS[$i]} == "-h" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4452
			action=help
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4453
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4454
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4455
	# if currently seeing a complete option, return just itself.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4456
	for i in $options; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4457
		if [ "$cur" = "$i" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4458
			COMPREPLY=( "$cur" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4459
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4460
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4461
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4462
	case "$action" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4463
		"unpack")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4464
			if [ "$cur" = "-" -o "$cur" = "-s" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4465
				COMPREPLY=( $unpackots )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4466
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4467
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4468
			case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4469
				"-x")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4470
					COMPREPLY=( $( compgen -d -- "$cur" ) \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4471
						    $( compgen -f -X '!*.dsc' -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4472
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4473
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4474
				*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4475
					COMPREPLY=( $unpackopts $(compgen -d -f -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4476
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4477
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4478
			esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4479
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4480
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4481
		"pack")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4482
			if [ "$cur" = "-" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4483
				COMPREPLY=( $packopts )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4484
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4485
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4486
			if [ "$cur" = "-s" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4487
				COMPREPLY=( "-sa" "-sk" "-sp" "-su" "-sr" "-ss" "-sn" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4488
			    		"-sA" "-sK" "-sP" "-sU" "-sR" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4489
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4490
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4491
			case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4492
				"-b")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4493
					COMPREPLY=( $( compgen -d -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4494
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4495
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4496
				"-c"|"-l"|"-T"|"-i"|"-I")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4497
					# -c: get controlfile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4498
					# -l: get per-version info from this file
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4499
					# -T: read variables here, not debian/substvars
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4500
					# -i: <regexp> filter out files to ignore diffs of.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4501
					# -I: filter out files when building tarballs.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4502
					# return directory names and file names
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4503
					COMPREPLY=( $( compgen -d -f ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4504
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4505
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4506
				"-F")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4507
					# -F: force change log format
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4508
					COMPREPLY=( $( ( cd /usr/lib/dpkg/parsechangelog; compgen -f "$cur" ) ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4509
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4510
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4511
				"-V"|"-D")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4512
					# -V: set a substitution variable
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4513
					# we don't know anything about possible variables or values
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4514
					# so we don't try to suggest any completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4515
					COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4516
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4517
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4518
				"-D")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4519
					# -D: override or add a .dsc field and value
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4520
					# if $cur doesn't contain a = yet, suggest variable names
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4521
					if echo -- "$cur" | grep -q "="; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4522
						# $cur contains a "="
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4523
						COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4524
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4525
					else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4526
						COMPREPLY=( Format Source Version Binary Maintainer Uploader Architecture Standards-Version Build-Depends Files )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4527
						return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4528
					fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4529
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4530
				"-U")
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4531
					# -U: remove a field
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4532
					# Suggest possible fieldnames
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4533
					COMPREPLY=( Format Source Version Binary Maintainer Uploader Architecture Standards-Version Build-Depends Files )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4534
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4535
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4536
				*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4537
					COMPREPLY=( $packopts )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4538
					return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4539
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4540
			esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4541
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4542
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4543
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4544
			# if seeing a partial option, return possible completions.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4545
			if [ "$cur" = "-s" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4546
				COMPREPLY=( "-sa" "-sk" "-sp" "-su" "-sr" "-ss" "-sn" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4547
			    		"-sA" "-sK" "-sP" "-sU" "-sR" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4548
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4549
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4550
			# else return all possible options.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4551
			COMPREPLY=( $options )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4552
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4553
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4554
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4555
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4556
complete -F _dpkg_source dpkg-source
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4557
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4558
# Debian Linux dselect(8) completion.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4559
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4560
have dselect &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4561
_dselect()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4562
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4563
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4564
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4565
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4566
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4567
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4568
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4569
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4570
	     --admindir)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4571
		  _filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4572
		  return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4573
		  ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4574
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4575
	     -@(D|debug))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4576
		  _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4577
		  return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4578
		  ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4579
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4580
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4581
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4582
	    COMPREPLY=( $( compgen -W '--admindir --help --version --licence \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4583
				  --license --expert --debug' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4584
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4585
	    COMPREPLY=( $( compgen -W 'access update select install config \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4586
				  remove quit' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4587
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4588
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4589
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4590
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4591
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4592
complete -F _dselect $filenames dselect
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4593
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4594
# Java completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4595
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4596
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4597
# available path elements completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4598
have java && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4599
_java_path()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4600
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4601
	cur=${cur##*:}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4602
	_filedir '@(jar|zip)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4603
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4604
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4605
# exact classpath determination
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4606
_java_find_classpath()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4607
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4608
	local i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4609
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4610
	# search first in current options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4611
	for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4612
		if [[ "${COMP_WORDS[i]}" == -@(cp|classpath) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4613
			classpath=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4614
			break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4615
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4616
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4617
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4618
	# default to environment
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4619
	[ -z "$classpath" ] && classpath=$CLASSPATH
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4620
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4621
	# default to current directory
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4622
	[ -z "$classpath" ] && classpath=.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4623
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4624
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4625
# exact sourcepath determination
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4626
_java_find_sourcepath()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4627
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4628
	local i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4629
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4630
	# search first in current options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4631
	for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4632
		if [[ "${COMP_WORDS[i]}" == -sourcepath ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4633
			sourcepath=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4634
			break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4635
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4636
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4637
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4638
	# default to classpath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4639
	[ -z "$sourcepath" ] && _java_find_classpath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4640
	sourcepath=$classpath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4641
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4642
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4643
# available classes completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4644
_java_classes()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4645
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4646
	local classpath i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4647
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4648
	# find which classpath to use
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4649
	_java_find_classpath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4650
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4651
	# convert package syntax to path syntax
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4652
	cur=${cur//.//}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4653
	# parse each classpath element for classes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4654
	for i in ${classpath//:/ }; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4655
		if [ -r $i ] && [[ "$i" == *.@(jar|zip) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4656
			if type zipinfo &> /dev/null; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4657
				COMPREPLY=( "${COMPREPLY[@]}" $( zipinfo -1 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4658
				"$i" | grep "^$cur" | grep '\.class$' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4659
				grep -v "\\$" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4660
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4661
				COMPREPLY=( "${COMPREPLY[@]}" $( jar tf "$i" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4662
				"$cur" | grep "\.class$" | grep -v "\\$" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4663
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4664
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4665
		elif [ -d $i ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4666
			i=${i%/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4667
			COMPREPLY=( "${COMPREPLY[@]}" $( find "$i" -type f \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4668
			-path "$i/$cur*.class" 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4669
			grep -v "\\$" | sed -e "s|^$i/||" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4670
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4671
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4672
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4673
	# remove class extension
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4674
	COMPREPLY=( ${COMPREPLY[@]%.class} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4675
	# convert path syntax to package syntax
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4676
	COMPREPLY=( ${COMPREPLY[@]//\//.} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4677
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4678
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4679
# available packages completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4680
_java_packages()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4681
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4682
	local sourcepath i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4683
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4684
	# find wich sourcepath to use
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4685
	_java_find_sourcepath
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4686
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4687
	# convert package syntax to path syntax
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4688
	cur=${cur//.//}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4689
	# parse each sourcepath element for packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4690
	for i in ${sourcepath//:/ }; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4691
		if [ -d $i ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4692
			COMPREPLY=( "${COMPREPLY[@]}" $( command ls -F -d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4693
				$i/$cur* 2>/dev/null | sed -e 's|^'$i'/||' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4694
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4695
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4696
	# keep only packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4697
	COMPREPLY=( $( echo "${COMPREPLY[@]}" | tr " " "\n" | grep "/$" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4698
	# remove packages extension
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4699
	COMPREPLY=( ${COMPREPLY[@]%/} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4700
	# convert path syntax to package syntax
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4701
	cur=${COMPREPLY[@]//\//.}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4702
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4703
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4704
# java completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4705
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4706
_java()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4707
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4708
	local cur prev i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4709
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4710
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4711
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4712
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4713
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4714
	for ((i=1; i < $COMP_CWORD; i++)); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4715
		case ${COMP_WORDS[$i]} in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4716
		    -cp|-classpath)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4717
			((i++))	# skip the classpath string.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4718
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4719
		    -*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4720
			# this is an option, not a class/jarfile name.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4721
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4722
		    *)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4723
			# once we've seen a class, just do filename completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4724
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4725
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4726
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4727
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4728
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4729
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4730
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4731
		-@(cp|classpath))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4732
			_java_path
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4733
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4734
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4735
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4736
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4737
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4738
		# relevant options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4739
		COMPREPLY=( $( compgen -W '-client -hotspot -server -classic \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4740
				-cp -classpath -D -verbose -verbose:class \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4741
				-verbose:gc -version:jni -version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4742
				-showversion -? -help -X -jar \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4743
				-ea -enableassertions -da -disableassertions \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4744
				-esa -enablesystemassertions \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4745
				-dsa -disablesystemassertions ' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4746
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4747
		if [[ "$prev" == -jar ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4748
			# jar file completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4749
			_filedir jar
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4750
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4751
			# classes completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4752
			_java_classes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4753
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4754
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4755
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4756
complete -F _java $filenames java
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4757
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4758
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4759
# javadoc completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4760
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4761
have javadoc &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4762
_javadoc()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4763
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4764
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4765
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4766
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4767
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4768
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4769
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4770
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4771
		-@(overview|helpfile|stylesheetfile))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4772
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4773
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4774
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4775
		-d)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4776
			_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4777
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4778
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4779
		-@(classpath|bootclasspath|docletpath|sourcepath|extdirs))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4780
			_java_path
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4781
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4782
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4783
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4784
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4785
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4786
		# relevant options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4787
		COMPREPLY=( $( compgen -W '-overview -public -protected \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4788
				-package -private -help -doclet -docletpath \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4789
				-sourcepath -classpath -exclude -subpackages \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4790
				-breakiterator -bootclasspath -source -extdirs \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4791
				-verbose -locale -encoding -J -d -use -version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4792
				-author -docfilessubdirs -splitindex \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4793
				-windowtitle -doctitle -header -footer -bottom \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4794
				-link -linkoffline -excludedocfilessubdir \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4795
				-group -nocomment -nodeprecated -noqualifier \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4796
				-nosince -nodeprecatedlist -notree -noindex \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4797
				-nohelp -nonavbar -quiet -serialwarn -tag \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4798
				-taglet -tagletpath -charset -helpfile \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4799
				-linksource -stylesheetfile -docencoding' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4800
				$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4801
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4802
		# source files completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4803
		_filedir java
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4804
		# packages completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4805
		_java_packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4806
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4807
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4808
complete -F _javadoc $filenames javadoc
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4809
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4810
# javac completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4811
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4812
have javac &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4813
_javac()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4814
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4815
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4816
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4817
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4818
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4819
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4820
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4821
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4822
		-d)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4823
			_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4824
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4825
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4826
		-@(classpath|bootclasspath|sourcepath|extdirs))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4827
			_java_path
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4828
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4829
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4830
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4831
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4832
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4833
		# relevant options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4834
		COMPREPLY=( $( compgen -W '-g -g:none -g:lines -g:vars\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4835
		-g:source -O -nowarn -verbose -deprecation -classpath\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4836
		-sourcepath -bootclasspath -extdirs -d -encoding -source\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4837
		-target -help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4838
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4839
		# source files completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4840
		_filedir java
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4841
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4842
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4843
complete -F _javac $filenames javac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4844
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4845
# PINE address-book completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4846
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4847
have pine &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4848
_pineaddr()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4849
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4850
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4851
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4852
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4853
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4854
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4855
	COMPREPLY=( $( compgen -W '$( awk "{print \$1}" ~/.addressbook 2>/dev/null)' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4856
			-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4857
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4858
complete -F _pineaddr $default pine
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4859
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4860
# mutt completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4861
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4862
# Mutt doesn't have an "addressbook" like Pine, but it has aliases and
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4863
# a "query" function to retrieve addresses, so that's what we use here.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4864
have mutt || have muttng && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4865
_muttaddr()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4866
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4867
	_muttaliases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4868
	_muttquery
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4869
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4870
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4871
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4872
_muttconffiles()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4873
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4874
	local file sofar
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4875
	local -a newconffiles
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4876
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4877
	sofar=" $1 "
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4878
	shift
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4879
	while [[ "$1" ]]; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4880
	    newconffiles=( $(sed -rn 's|^source[[:space:]]+([^[:space:]]+).*$|\1|p' $(eval echo $1) ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4881
	    for file in "${newconffiles[@]}"; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4882
		[[ ! "$file" ]] || [[ "${sofar/ ${file} / }" != "$sofar" ]] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4883
		    continue
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4884
		sofar="$sofar $file"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4885
		sofar=" $(eval _muttconffiles \"$sofar\" $file) "
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4886
	    done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4887
	    shift
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4888
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4889
	echo $sofar
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4890
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4891
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4892
_muttaliases()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4893
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4894
	local cur muttrc
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4895
	local -a conffiles aliases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4896
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4897
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4898
	[ -f ~/.${muttcmd}/${muttcmd}rc ] && muttrc="~/.${muttcmd}/${muttcmd}rc"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4899
	[ -f ~/.${muttcmd}rc ] && muttrc="~/.${muttcmd}rc"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4900
	[ -z "$muttrc" ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4901
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4902
	conffiles=( $(eval _muttconffiles $muttrc $muttrc) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4903
	aliases=( $( sed -rn 's|^alias[[:space:]]+([^[:space:]]+).*$|\1|p' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4904
			$(eval echo "${conffiles[@]}") ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4905
	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${aliases[*]}" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4906
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4907
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4908
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4909
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4910
_muttquery()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4911
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4912
	local cur querycmd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4913
	local -a queryresults
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4914
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4915
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4916
	querycmd="$( $muttcmd -Q query_command  | sed -r 's|^query_command=\"(.*)\"$|\1|; s|%s|'$cur'|' )"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4917
	if [ -z "$cur" -o -z "$querycmd" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4918
	    queryresults=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4919
	else 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4920
	    queryresults=( $( $querycmd | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4921
	      sed -nr '2,$s|^([^[:space:]]+).*|\1|p' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4922
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4923
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4924
	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${queryresults[*]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4925
			-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4926
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4927
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4928
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4929
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4930
_muttfiledir()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4931
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4932
	local cur folder spoolfile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4933
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4934
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4935
	# This is currently not working so well. Perhaps this function should
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4936
	# just call _filedir() for the moment.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4937
	if [[ $cur == [=+]* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4938
		folder="$( $muttcmd -Q folder | sed -r 's|^folder=\"(.*)\"$|\1|' )"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4939
		: folder:=~/Mail
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4940
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4941
		# Match any file in $folder beginning with $cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4942
		# (minus the leading '=' sign).
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4943
		COMPREPLY=( $( compgen -f -- "$folder/${cur:1}" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4944
		COMPREPLY=( ${COMPREPLY[@]#$folder/} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4945
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4946
	elif [ "$cur" == !* ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4947
		spoolfile="$( $muttcmd -Q spoolfile | sed -r 's|^spoolfile=\"(.*)\"$|\1|' )"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4948
		[ ! -z "$spoolfile" ] && eval cur="${cur/^!/$spoolfile}";
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4949
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4950
	_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4951
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4952
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4953
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4954
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4955
_mutt()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4956
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4957
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4958
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4959
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4960
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4961
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4962
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4963
	[ ${COMP_WORDS[0]} == muttng ] && muttcmd="muttng" || muttcmd="mutt"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4964
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4965
	case "$cur" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4966
	-*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4967
		COMPREPLY=( $( compgen -W '-A -a -b -c -e -f -F -H -i -m -n \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4968
					    -p -Q -R -s -v -x -y -z -Z -h' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4969
					    -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4970
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4971
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4972
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4973
	    case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4974
	    -@(a|f|F|H|i))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4975
		    _muttfiledir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4976
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4977
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4978
	    -A)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4979
		    _muttaliases
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4980
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4981
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4982
	    -@(e|m|Q|s|h|p|R|v|y|z|Z))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4983
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4984
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4985
	    *)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4986
		    _muttaddr
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4987
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4988
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4989
	    esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4990
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4991
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4992
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4993
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4994
complete -F _mutt $default $filenames mutt muttng
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4995
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4996
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4997
_configure_func()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4998
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  4999
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5000
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5001
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5002
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5003
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5004
	# if $COMP_CONFIGURE_HINTS is not null, then completions of the form
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5005
	# --option=SETTING will include 'SETTING' as a contextual hint
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5006
	[[ "$cur" != -* ]] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5007
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5008
	if [ -n "$COMP_CONFIGURE_HINTS" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5009
		COMPREPLY=( $( $1 --help | awk '/^  --[A-Za-z]/ { print $1; if ($2 ~ /--[A-Za-z]/) print $2 }' | sed -e 's/[[,].*//g' | grep ^$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5010
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5011
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5012
		COMPREPLY=( $( $1 --help | awk '/^  --[A-Za-z]/ { print $1; if ($2 ~ /--[A-Za-z]/) print $2 }' | sed -e 's/[[,=].*//g' | grep ^$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5013
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5014
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5015
complete -F _configure_func $default configure
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5016
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5017
# Debian reportbug(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5018
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5019
have reportbug &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5020
_reportbug()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5021
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5022
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5023
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5024
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5025
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5026
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5027
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5028
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5029
	    -f|--filename|-i|--include|--mta|-o|--output)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5030
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5031
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5032
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5033
	    -B|--bts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5034
		COMPREPLY=( $( compgen -W "debian guug kde mandrake help" -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5035
			       $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5036
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5037
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5038
	    -e|--editor|--mua)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5039
		COMP_WORDS=(COMP_WORDS[0] $cur)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5040
		COMP_CWORD=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5041
		_command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5042
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5043
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5044
	    --mode)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5045
		COMPREPLY=( $( compgen -W "novice standard expert" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5046
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5047
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5048
	    -S|--severity)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5049
		COMPREPLY=( $( compgen -W "grave serious important normal \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5050
					   minor wishlist" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5051
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5052
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5053
	    -u|--ui|--interface)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5054
		COMPREPLY=( $( compgen -W "newt text gnome" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5055
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5056
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5057
	    -t|--type)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5058
		COMPREPLY=( $( compgen -W "gnats debbugs" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5059
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5060
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5061
	    -T|--tags)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5062
		COMPREPLY=( $( compgen -W "none patch security upstream sid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5063
					   woody potato sarge fixed" -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5064
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5065
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5066
	    *)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5067
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5068
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5069
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5070
	COMPREPLY=($( compgen -W '-h --help -v --version -a --af -b \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5071
			--no-query-bts --query-bts -B --bts -c --configure \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5072
			--no-config-files --check-available -d --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5073
			--no-check-available -e --editor --email -f \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5074
			--filename -g --gnupg -H --header -i --include -j \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5075
			--justification -l --ldap --no-ldap -L --list-cc -m \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5076
			--maintonly --mode --mua --mta --mutt -n --mh --nmh \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5077
			-o --output -p --print -P --pgp --proxy --http_proxy\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5078
			-q --quiet -Q --query-only --realname --report-quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5079
			--reply-to --replyto -s --subject -S --severity \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5080
			--smtphost -t --type -T --tags --template -V -x \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5081
			--no-cc --package-version -z --no-compress \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5082
			--ui --interface -u \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5083
			wnpp boot-floppies kernel-image' -- $cur ) \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5084
	    		$( apt-cache pkgnames -- $cur 2> /dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5085
	_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5086
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5087
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5088
complete -F _reportbug $filenames reportbug
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5089
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5090
# Debian querybts(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5091
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5092
have querybts &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5093
_querybts()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5094
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5095
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5096
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5097
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5098
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5099
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5100
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5101
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5102
	    -B|--bts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5103
		COMPREPLY=( $( compgen -W "debian guug kde mandrake help" -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5104
			       $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5105
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5106
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5107
	    -u|--ui|--interface)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5108
		COMPREPLY=($( compgen -W "newt text gnome" -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5109
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5110
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5111
	    *)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5112
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5113
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5114
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5115
	COMPREPLY=($( compgen -W '-h --help -v --version -A --archive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5116
			-B --bts -l --ldap --no-ldap --proxy= --http_proxy= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5117
			-s --source -w --web -u --ui --interface \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5118
			wnpp boot-floppies' -- $cur ) \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5119
	    		$( apt-cache pkgnames -- $cur 2> /dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5120
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5121
complete -F _querybts $filenames querybts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5122
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5123
# update-alternatives completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5124
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5125
have update-alternatives && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5126
installed_alternatives()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5127
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5128
	local admindir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5129
	# find the admin dir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5130
	for i in alternatives dpkg/alternatives rpm/alternatives; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5131
		[ -d /var/lib/$i ] && admindir=/var/lib/$i && break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5132
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5133
	for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5134
		if [[ "${COMP_WORDS[i]}" == --admindir ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5135
			admindir=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5136
			break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5137
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5138
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5139
	COMPREPLY=( $( command ls $admindir | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5140
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5141
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5142
_update_alternatives()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5143
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5144
	local cur prev mode args i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5145
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5146
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5147
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5148
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5149
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5150
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5151
	--@(altdir|admindir))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5152
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5153
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5154
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5155
	--@(help|version))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5156
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5157
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5158
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5159
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5160
	# find wich mode to use and how many real args used so far
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5161
	for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5162
		if [[ "${COMP_WORDS[i]}" == --@(install|remove|auto|display|config|remove-all) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5163
			mode=${COMP_WORDS[i]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5164
			args=$(($COMP_CWORD - i))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5165
			break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5166
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5167
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5168
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5169
	case $mode in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5170
	--install)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5171
		case $args in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5172
		1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5173
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5174
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5175
		2)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5176
			installed_alternatives
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5177
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5178
		3)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5179
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5180
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5181
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5182
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5183
	--remove)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5184
		case $args in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5185
		1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5186
			installed_alternatives
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5187
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5188
		2)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5189
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5190
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5191
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5192
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5193
	--auto)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5194
		installed_alternatives
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5195
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5196
	--remove-all)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5197
		installed_alternatives
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5198
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5199
	--display)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5200
		installed_alternatives
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5201
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5202
	--config)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5203
		installed_alternatives
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5204
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5205
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5206
		COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5207
			       --altdir --admindir' -- $cur ) \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5208
			    $( compgen -W '--install --remove --auto --display \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5209
			       --config' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5210
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5211
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5212
complete -F _update_alternatives update-alternatives
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5213
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5214
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5215
# Python completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5216
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5217
have python &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5218
_python()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5219
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5220
	local prev cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5221
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5222
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5223
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5224
	prev=${COMP_WORDS[COMP_CWORD-1]##*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5225
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5226
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5227
	-Q)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5228
		COMPREPLY=( $( compgen -W "old new warn warnall" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5229
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5230
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5231
	-W)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5232
		COMPREPLY=( $( compgen -W "ignore default all module once error" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5233
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5234
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5235
	-c)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5236
		_filedir '@(py|pyc|pyo)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5237
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5238
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5239
	!(python|-?))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5240
		[[ ${COMP_WORDS[COMP_CWORD-2]} != -@(Q|W) ]] && _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5241
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5242
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5243
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5244
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5245
	# if '-c' is already given, complete all kind of files.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5246
	for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5247
		if [[ ${COMP_WORDS[i]} == -c ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5248
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5249
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5250
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5251
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5252
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5253
	if [[ "$cur" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5254
		_filedir '@(py|pyc|pyo)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5255
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5256
		COMPREPLY=( $( compgen -W "- -d -E -h -i -O -Q -S -t -u \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5257
					   -U -v -V -W -x -c" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5258
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5259
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5260
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5261
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5262
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5263
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5264
complete -F _python $filenames python
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5265
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5266
# Perl completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5267
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5268
have perl &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5269
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5270
_perlmodules()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5271
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5272
    COMPREPLY=( $( compgen -P "$prefix" -W "$( perl -e 'sub mods { my ($base,$dir)=@_; return if  $base !~ /^\Q$ENV{cur}/; chdir($dir) or return; for (glob(q[*.pm])) {s/\.pm$//; print qq[$base$_\n]}; mods(/^(?:[.\d]+|$Config{archname}-$Config{osname}|auto)$/ ? undef : qq[${base}${_}\\\\:\\\\:],qq[$dir/$_]) for grep {-d} glob(q[*]); } mods(undef,$_) for @INC;' )" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5273
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5274
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5275
_perl()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5276
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5277
    local cur prev prefix temp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5278
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5279
    COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5280
    cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5281
    prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5282
    prefix=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5283
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5284
    # completing an option (may or may not be separated by a space)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5285
    if [[ "$cur" == -?* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5286
	temp=$cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5287
	prev=${temp:0:2}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5288
	cur=${temp:2}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5289
	prefix=$prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5290
    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5291
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5292
    # only handle module completion for now
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5293
    case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5294
    	-I|-x)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5295
	    COMPREPLY=( $( compgen -d -P "$prev" -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5296
	    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5297
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5298
	-m|-M)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5299
	    _perlmodules
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5300
	    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5301
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5302
    esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5303
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5304
    # handle case where first parameter is not a dash option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5305
    if [[ "${COMP_WORDS[COMP_CWORD]}" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5306
	_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5307
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5308
    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5309
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5310
    # complete using basic options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5311
    COMPREPLY=( $( compgen -W '-C -s -T -u -U -W -X -h -v -V -c -w -d -D -p \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5312
			-n -a -F -l -0 -I -m -M -P -S -x -i -e ' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5313
    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5314
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5315
complete -F _perl $filenames perl
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5316
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5317
_perldoc()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5318
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5319
    local cur prev prefix temp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5320
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5321
    COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5322
    cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5323
    prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5324
    prefix=""
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5325
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5326
    # completing an option (may or may not be separated by a space)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5327
    if [[ "$cur" == -?* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5328
	temp=$cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5329
	prev=${temp:0:2}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5330
	cur=${temp:2}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5331
	prefix=$prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5332
    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5333
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5334
    # complete builtin perl functions
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5335
    case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5336
	-f)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5337
	    COMPREPLY=( $( compgen -W 'chomp chop chr crypt hex index lc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5338
	    lcfirst length oct ord pack q qq reverse rindex sprintf \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5339
	    substr tr uc ucfirst y m pos quotemeta s split study qr abs \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5340
	    atan2 cos exp hex int log oct rand sin sqrt srand pop push \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5341
	    shift splice unshift grep join map qw reverse sort unpack \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5342
	    delete each exists keys values binmode close closedir \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5343
	    dbmclose dbmopen die eof fileno flock format getc print \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5344
	    printf read readdir rewinddir seek seekdir select syscall \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5345
	    sysread sysseek syswrite tell telldir truncate warn write \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5346
	    pack read syscall sysread syswrite unpack vec -X chdir chmod \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5347
	    chown chroot fcntl glob ioctl link lstat mkdir open opendir \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5348
	    readlink rename rmdir stat symlink umask unlink utime caller \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5349
	    continue do dump eval exit goto last next redo return \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5350
	    sub wantarray caller import local my our package use defined \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5351
	    formline reset scalar undef \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5352
	    alarm exec fork getpgrp getppid getpriority kill pipe qx \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5353
	    setpgrp setpriority sleep system times wait waitpid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5354
	    import no package require use bless dbmclose dbmopen package \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5355
	    ref tie tied untie use accept bind connect getpeername \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5356
	    getsockname getsockopt listen recv send setsockopt shutdown \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5357
	    socket socketpair msgctl msgget msgrcv msgsnd semctl semget \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5358
	    semop shmctl shmget shmread shmwrite endgrent endhostent \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5359
	    endnetent endpwent getgrent getgrgid getgrnam getlogin \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5360
	    getpwent getpwnam getpwuid setgrent setpwent endprotoent \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5361
	    endservent gethostbyaddr gethostbyname gethostent \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5362
	    getnetbyaddr getnetbyname getnetent getprotobyname \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5363
	    getprotobynumber getprotoent getservbyname getservbyport \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5364
	    getservent sethostent setnetent setprotoent setservent \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5365
	    gmtime localtime time times' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5366
	    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5367
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5368
    esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5369
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5370
    case $cur in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5371
	-*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5372
	    COMPREPLY=( $( compgen -W '-h -v -t -u -m -l -F -X -f -q' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5373
	    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5374
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5375
	*/*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5376
	    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5377
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5378
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5379
	    _perlmodules
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5380
	    COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W '$( PAGER=cat man perl 2>/dev/null | sed -ne "/perl.*Perl overview/,/perlwin32/s/^[^a-z0-9]*\([a-z0-9]*\).*$/\1/p")' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5381
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5382
	    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5383
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5384
    esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5385
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5386
complete -F _perldoc $default perldoc
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5387
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5388
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5389
# rcs(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5390
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5391
have rcs &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5392
_rcs()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5393
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5394
	local cur prev file dir i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5395
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5396
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5397
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5398
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5399
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5400
	file=${cur##*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5401
	dir=${cur%/*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5402
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5403
	# deal with relative directory
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5404
	[ "$file" = "$dir" ] && dir=.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5405
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5406
	COMPREPLY=( $( compgen -f "$dir/RCS/$file" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5407
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5408
	for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5409
		file=${COMPREPLY[$i]##*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5410
		dir=${COMPREPLY[$i]%RCS/*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5411
		COMPREPLY[$i]=$dir$file
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5412
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5413
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5414
	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -G "$dir/$file*,v" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5415
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5416
	for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5417
		COMPREPLY[$i]=${COMPREPLY[$i]%,v}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5418
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5419
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5420
	# default to files if nothing returned and we're checking in.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5421
	# otherwise, default to directories
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5422
	[ ${#COMPREPLY[@]} -eq 0 -a $1 = ci ] && _filedir || _filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5423
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5424
complete -F _rcs $filenames ci co rlog rcs rcsdiff
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5425
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5426
# lilo(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5427
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5428
have lilo && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5429
_lilo_labels()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5430
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5431
	COMPREPLY=( $( awk -F'=' '/label/ {print $2}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5432
		/etc/lilo.conf | sed -e 's/"//g' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5433
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5434
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5435
_lilo()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5436
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5437
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5438
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5439
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5440
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5441
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5442
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5443
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5444
		-@(C|i|m|s|S))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5445
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5446
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5447
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5448
		-r)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5449
			_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5450
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5451
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5452
		-@(I|D|R))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5453
			# label completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5454
			_lilo_labels
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5455
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5456
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5457
		-@(A|b|M|u|U))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5458
			# device completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5459
			cur=${cur:=/dev/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5460
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5461
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5462
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5463
		-T)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5464
			# topic completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5465
			COMPREPLY=( $( compgen -W 'help ChRul EBDA geom geom= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5466
					table= video' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5467
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5468
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5469
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5470
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5471
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5472
		# relevant options completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5473
		COMPREPLY=( $( compgen -W '-A -b -c -C -d -f -g -i -I -l -L -m \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5474
			-M -p -P -q -r -R -s -S -t -T -u -U -v -V -w -x -z' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5475
			$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5476
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5477
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5478
complete -F _lilo lilo
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5479
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5480
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5481
# links completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5482
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5483
have links &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5484
_links()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5485
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5486
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5487
  
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5488
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5489
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5490
  
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5491
	case "$cur" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5492
	    --*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5493
		COMPREPLY=( $( compgen -W '--help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5494
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5495
	    -*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5496
		COMPREPLY=( $( compgen -W '-async-dns -max-connections \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5497
				-max-connections-to-host -retries \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5498
				-receive-timeout -unrestartable-receive-timeout\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5499
				-format-cache-size -memory-cache-size \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5500
				-http-proxy -ftp-proxy -download-dir \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5501
				-assume-codepage -anonymous -dump -no-connect \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5502
				-source -version -help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5503
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5504
	    *)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5505
		if [ -r ~/.links/links.his ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5506
		    COMPREPLY=( $( compgen -W '$( < ~/.links/links.his )' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5507
				   -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5508
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5509
				_filedir '@(htm|html)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5510
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5511
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5512
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5513
  
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5514
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5515
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5516
complete -F _links $filenames links
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5517
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5518
[ $UNAME = FreeBSD ] && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5519
# FreeBSD package management tool completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5520
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5521
_pkg_delete()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5522
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5523
	local cur pkgdir prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5524
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5525
	pkgdir=${PKG_DBDIR:-/var/db/pkg}/
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5526
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5527
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5528
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5529
	[ "$prev" = "-o" -o "$prev" = "-p" -o "$prev" = "-W" ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5530
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5531
	COMPREPLY=( $( compgen -d $pkgdir$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5532
	COMPREPLY=( ${COMPREPLY[@]#$pkgdir} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5533
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5534
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5535
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5536
complete -F _pkg_delete $dirnames pkg_delete pkg_info
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5537
have pkg_deinstall && complete -F _pkg_delete $dirnames pkg_deinstall
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5538
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5539
# FreeBSD kernel module commands
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5540
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5541
_kldload()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5542
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5543
	local cur moddir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5544
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5545
	moddir=/modules/
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5546
	[ -d $moddir ] || moddir=/boot/kernel/
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5547
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5548
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5549
	COMPREPLY=( $( compgen -f $moddir$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5550
	COMPREPLY=( ${COMPREPLY[@]#$moddir} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5551
	COMPREPLY=( ${COMPREPLY[@]%.ko} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5552
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5553
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5554
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5555
complete -F _kldload $filenames kldload
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5556
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5557
_kldunload()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5558
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5559
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5560
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5561
	COMPREPLY=( $(kldstat | sed -ne "s/^.*[ \t]\+\($cur[a-z_]\+\).ko$/\1/p") )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5562
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5563
complete -F _kldunload $filenames kldunload
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5564
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5565
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5566
# FreeBSD portupgrade completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5567
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5568
have portupgrade &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5569
_portupgrade()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5570
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5571
	local cur pkgdir prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5572
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5573
	pkgdir=${PKG_DBDIR:-/var/db/pkg}/
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5574
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5575
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5576
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5577
	[ "$prev" = "-l" -o "$prev" = "-L" -o "$prev" = "-o" ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5578
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5579
	COMPREPLY=( $( compgen -d $pkgdir$cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5580
	COMPREPLY=( ${COMPREPLY[@]#$pkgdir} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5581
	COMPREPLY=( ${COMPREPLY[@]%-*} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5582
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5583
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5584
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5585
complete -F _portupgrade $dirnames portupgrade
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5586
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5587
# FreeBSD portinstall completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5588
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5589
have portinstall &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5590
_portinstall()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5591
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5592
	local cur portsdir prev indexfile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5593
	local -a COMPREPLY2
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5594
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5595
	portsdir=${PORTSDIR:-/usr/ports}/
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5596
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5597
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5598
	# First try INDEX-5
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5599
	indexfile=$portsdir/INDEX-5
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5600
	# Then INDEX if INDEX-5 does not exist or system is not FreeBSD 5.x
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5601
	[ "${OSTYPE%.*}" = "freebsd5" -a -f $indexfile ] ||
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5602
	  indexfile=$portsdir/INDEX
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5603
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5604
	[ "$prev" = "-l" -o "$prev" = "-L" -o "$prev" = "-o" ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5605
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5606
	COMPREPLY=( $( egrep "^$cur" < $indexfile | cut -d'|' -f1 ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5607
	COMPREPLY2=( $( egrep "^[^\|]+\|$portsdir$cur" < $indexfile | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5608
			cut -d'|' -f2 ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5609
	COMPREPLY2=( ${COMPREPLY2[@]#$portsdir} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5610
	COMPREPLY=( "${COMPREPLY[@]}" "${COMPREPLY2[@]}" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5611
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5612
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5613
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5614
complete -F _portinstall $dirnames portinstall
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5615
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5616
# Slackware Linux removepkg completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5617
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5618
have removepkg && [ -f /etc/slackware-version ] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5619
_removepkg()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5620
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5621
	local packages cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5622
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5623
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5624
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5625
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5626
	COMPREPLY=( $( (cd /var/log/packages; compgen -f -- "$cur") ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5627
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5628
complete -F _removepkg $filenames removepkg &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5629
	complete $dirnames -f -X '!*.tgz' installpkg upgradepkg explodepkg
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5630
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5631
# look(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5632
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5633
have look && 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5634
_look()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5635
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5636
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5637
  
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5638
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5639
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5640
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5641
	if [ $COMP_CWORD = 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5642
		COMPREPLY=( $( compgen -W '$(look $cur)' ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5643
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5644
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5645
complete -F _look $default look
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5646
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5647
# ypcat(1) and ypmatch(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5648
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5649
have ypmatch &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5650
_ypmatch()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5651
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5652
	local cur map
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5653
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5654
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5655
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5656
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5657
	[ $1 = ypcat ] && [ $COMP_CWORD -gt 1 ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5658
	[ $1 = ypmatch ] && [ $COMP_CWORD -gt 2 ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5659
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5660
	if [ $1 = ypmatch ] && [ $COMP_CWORD -eq 1 ] && \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5661
	   [ ${#COMP_WORDS[@]} -eq 3 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5662
		map=${COMP_WORDS[2]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5663
		COMPREPLY=( $( compgen -W '$( ypcat $map | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5664
						cut -d':' -f 1 )' -- $cur) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5665
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5666
		[ $1 = ypmatch ] && [ $COMP_CWORD -ne 2 ] && return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5667
		COMPREPLY=( $( compgen -W \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5668
			      '$( echo $(ypcat -x | cut -d"\"" -f 2))' -- $cur))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5669
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5670
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5671
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5672
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5673
complete -F _ypmatch ypmatch ypcat
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5674
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5675
# mplayer(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5676
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5677
have mplayer && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5678
_mplayer_options_list()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5679
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5680
	cur=${cur%\\}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5681
	COMPREPLY=( $( $1 $2 help 2> /dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5682
		sed -e '1,/^Available/d' | awk '{print $1}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5683
		sed -e 's/:$//' -e 's/^'${2#-}'$//' -e 's/<.*//' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5684
		grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5685
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5686
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5687
_mplayer()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5688
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5689
	local cmd cur prev skinsdir IFS=$' \t\n' i j k=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5690
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5691
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5692
	cmd=${COMP_WORDS[0]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5693
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5694
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5695
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5696
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5697
		-@(ac|afm|vc|vfm|ao|vo|vop|fstype))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5698
			_mplayer_options_list mplayer $prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5699
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5700
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5701
		-@(oac|ovc|of))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5702
			_mplayer_options_list mencoder $prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5703
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5704
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5705
		-audiofile)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5706
			_filedir '@(mp3|MP3|mpg|MPG|ogg|OGG|wav|WAV|mid|MID|flac|FLAC|mka|MKA)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5707
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5708
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5709
		-font)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5710
			_filedir '@(desc|ttf)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5711
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5712
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5713
		-sub)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5714
			_filedir '@(srt|SRT|sub|SUB|txt|TXT|utf|UTF|rar|RAR|mpsub|smi|js|ssa|SSA|aas|AAS)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5715
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5716
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5717
		-vobsub)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5718
			_filedir '@(idx|IDX|ifo|IFO|sub|SUB)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5719
			IFS=$'\t\n' 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5720
			COMPREPLY=( $( for i in "${COMPREPLY[@]}"; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5721
						if [ -f $i -a -r $i ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5722
							echo ${i%.*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5723
						else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5724
							echo $i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5725
						fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5726
				       done ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5727
			IFS=$' \t\n' 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5728
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5729
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5730
		-ifo)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5731
			_filedir '@(ifo|IFO)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5732
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5733
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5734
		-cuefile)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5735
			_filedir '@(bin|BIN|cue|CUE)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5736
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5737
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5738
		-skin)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5739
			# if you don't have installed mplayer in /usr you
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5740
			# may want to set the MPLAYER_SKINS_DIR global variable
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5741
			if [ -n "$MPLAYER_SKINS_DIR" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5742
				skinsdir=$MPLAYER_SKINS_DIR
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5743
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5744
				skinsdir=/usr/share/mplayer/Skin
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5745
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5746
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5747
			IFS=$'\t\n' 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5748
			for i in ~/.mplayer/Skin $skinsdir; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5749
				if [ -d $i -a -r $i ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5750
					for j in $( compgen -d $i/$cur ); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5751
						COMPREPLY[$k]=${j#$i/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5752
						k=$((++k))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5753
					done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5754
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5755
			done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5756
			IFS=$' \t\n' 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5757
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5758
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5759
		-@(mixer|@(cdrom|dvd)-device|dvdauth|fb|zrdev))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5760
			cur=${cur:=/dev/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5761
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5762
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5763
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5764
		-@(edl?(out)|lircconf|menu-cfg|playlist|csslib|dumpfile)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5765
		-@(subfile|vobsub|aofile|fbmodeconfig|include|o|dvdkey)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5766
		-passlogfile)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5767
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5768
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5769
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5770
		-@(auto@(q|sync)|loop|menu-root|speed|sstep|aid|alang)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5771
		-@(?(@(audio|sub)-)demuxer|bandwidth|cache|chapter)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5772
		-@(dvd?(angle)|fps|frames|mc|passwd|user|sb|srate|ss|vcd)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5773
		-@(vi?(d|vo)|ffactor|sid|slang|spu@(align|aa|gauss))| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5774
		-@(vobsubid|delay|bpp|brightness|contrast|dfbopts|display)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5775
		-@(fbmode|geometry|guiwid|hue|icelayer|screen[wh]|wid)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5776
		-@(monitor@(aspect|-@(dotclock|[hv]freq))|panscan|saturation)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5777
		-@(xineramascreen|zr@(crop|norm|quality|[xy]doff|[vh]dec))| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5778
		-@(aspect|pp|x|y|xy|z|stereo|audio-@(density|delay|preload))| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5779
		-@(endpos|osdlevel|ffourcc|sws|channels|skiplimit|format)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5780
		-@(ofps|aa@(driver|@(osd|sub)color)|vobsubout?(i@(ndex|d)))| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5781
		-sub@(-bg-@(alpha|color)|cp|delay|fps|pos|align|width)| \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5782
		-sub@(font-@(blur|outline|autoscale|encoding|@(osd|text)-scale)))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5783
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5784
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5785
		-lavdopts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5786
			COMPREPLY=( $( compgen -W 'ec er= bug= idct= gray' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5787
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5788
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5789
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5790
		-lavcopts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5791
			COMPREPLY=( $( compgen -W 'vcodec= vqmin= vqscale= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5792
					vqmax= mbqmin= mbqmax= vqdiff= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5793
					vmax_b_frames= vme= vhq v4mv \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5794
					keyint= vb_strategy= vpass= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5795
					aspect= vbitrate= vratetol= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5796
					vrc_maxrate= vrc_minrate= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5797
					vrc_buf_size= vb_qfactor= vi_qfactor= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5798
					vb_qoffset= vi_qoffset= vqblur= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5799
					vqcomp= vrc_eq= vrc_override= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5800
					vrc_init_cplx= vqsquish= vlelim= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5801
					vcelim= vstrict= vdpart vpsize= gray \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5802
					vfdct= idct= lumi_mask= dark_mask= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5803
					tcplx_mask= scplx_mask= naq ildct \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5804
					format= pred qpel precmp= cmp= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5805
					subcmp= predia= dia= trell last_pred= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5806
					preme= subq= psnr mpeg_quant aic umv' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5807
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5808
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5809
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5810
		-ssf)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5811
			COMPREPLY=( $( compgen -W 'lgb= cgb= ls= cs= chs= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5812
					cvs=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5813
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5814
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5815
		-jpeg)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5816
			COMPREPLY=( $( compgen -W 'noprogressive progressive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5817
					nobaseline baseline optimize= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5818
					smooth= quality= outdir=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5819
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5820
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5821
		-xvidopts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5822
			COMPREPLY=( $( compgen -W 'dr2 nodr2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5823
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5824
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5825
		-xvidencopts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5826
			COMPREPLY=( $( compgen -W 'pass= bitrate= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5827
					fixed_quant= me_quality= 4mv \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5828
					rc_reaction_delay_factor= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5829
					rc_averaging_period= rc_buffer= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5830
					quant_range= min_key_interval= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5831
					max_key_interval= mpeg_quant \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5832
					mod_quant lumi_mask hintedme \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5833
					hintfile debug keyframe_boost= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5834
					kfthreshold= kfreduction=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5835
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5836
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5837
		-divx4opts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5838
			COMPREPLY=( $( compgen -W 'br= key= deinterlace q= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5839
					min_quant= max_quant= rc_period= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5840
					rc_reaction_period= crispness= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5841
					rc_reaction_ratio= pass= vbrpass= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5842
					help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5843
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5844
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5845
		-info)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5846
			COMPREPLY=( $( compgen -W 'name= artist= genre= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5847
					subject= copyright= srcform= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5848
					comment= help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5849
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5850
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5851
		-lameopts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5852
			COMPREPLY=( $( compgen -W 'vbr= abr cbr br= q= aq= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5853
					ratio= vol= mode= padding= fast \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5854
					preset= help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5855
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5856
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5857
		-rawaudio)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5858
			COMPREPLY=( $( compgen -W 'on channels= rate= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5859
					samplesize= format=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5860
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5861
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5862
		-rawvideo)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5863
			COMPREPLY=( $( compgen -W 'on fps= sqcif qcif cif \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5864
					4cif pal ntsc w= h= y420 yv12 yuy2 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5865
					y8 format= size=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5866
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5867
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5868
		-aop)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5869
			COMPREPLY=( $( compgen -W 'list= delay= format= fout= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5870
					volume= mul= softclip' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5871
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5872
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5873
		-dxr2)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5874
			COMPREPLY=( $( compgen -W 'ar-mode= iec958-encoded \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5875
					iec958-decoded mute ucode= 75ire bw \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5876
					color interlaced macrovision= norm= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5877
					square-pixel ccir601-pixel cr-left= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5878
					cr-right= cr-top= cr-bot= ck-rmin= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5879
					ck-gmin= ck-bmin= ck-rmax= ck-gmax= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5880
					ck-bmax= ck-r= ck-g= ck-b= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5881
					ignore-cache= ol-osd= olh-cor= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5882
					olw-cor= olx-cor= oly-cor= overlay \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5883
					overlay-ratio= update-cache' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5884
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5885
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5886
		-tv)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5887
			COMPREPLY=( $( compgen -W 'on noaudio driver= device= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5888
					input= freq= outfmt= width= height= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5889
					buffersize= norm= channel= chanlist= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5890
					audiorate= forceaudio alsa amode= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5891
					forcechan= adevice= audioid= volume= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5892
					bass= treble= balance= fps= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5893
					channels= immediatemode=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5894
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5895
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5896
		-mf)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5897
			COMPREPLY=( $( compgen -W 'on w= h= fps= type=' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5898
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5899
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5900
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5901
		-cdda)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5902
			COMPREPLY=( $( compgen -W 'speed= paranoia= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5903
					generic-dev= sector-size= overlap= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5904
					toc-bias toc-offset= skip noskip' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5905
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5906
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5907
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5908
		-input)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5909
			COMPREPLY=( $( compgen -W 'conf= ar-delay ar-rate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5910
					keylist cmdlist js-dev file' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5911
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5912
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5913
		-af)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5914
			COMPREPLY=( $( compgen -W 'resample resample= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5915
					channels channels= format format= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5916
					volume volume= delay delay= pan \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5917
					pan= sub sub= surround surround=' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5918
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5919
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5920
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5921
		-af-adv)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5922
			COMPREPLY=( $( compgen -W 'force= list=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5923
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5924
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5925
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5926
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5927
	case "$cur" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5928
		-*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5929
			COMPREPLY=( $( compgen -W '-aid -alang -audio-demuxer \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5930
					-audiofile -cdrom-device -cache -cdda \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5931
					-channels -chapter -csslib -demuxer \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5932
					-dvd -dvd-device -dvdangle -dvdauth \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5933
					-dvdkey -dvdnav -forceidx -fps -frames \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5934
					-hr-mp3-seek -idx -mc -mf -ni -nobps \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5935
					-passwd -rawaudio -rtsp-stream-over-tcp\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5936
					-skipopening -sb -srate -ss -tv -user \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5937
					-vcd -vid -vivo -ifo -ffactor -font \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5938
					-noautosub -nooverlapsub -sid -slang \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5939
					-sub -subcc -subcp -sub-demuxer \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5940
					-subdelay -subfont-autoscale \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5941
					-subfont-blur -subfont-encoding \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5942
					-subfont-osd-scale -subfont-outline \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5943
					-subfont-text-scale -subfps -subfile \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5944
					-subpos -unicode -utf8 -vobsub \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5945
					-vobsubid -ac -afm -aspect -flip \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5946
					-lavdopts -noaspect -nosound -pp -ssf \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5947
					-stereo -sws -vc -vfm -vop -xvidopts\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5948
					-xy -zoom -bandwidth -cuefile \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5949
					-noextbased -rawvideo -overlapsub \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5950
					-sub-bg-alpha -sub-bg-color -subalign \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5951
					-subwidth -sub-no-text-pp -spualign \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5952
					-spuaa -spugauss -pphelp -verbose -v \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5953
					-noni -noidx -nohr-mp3-seek -extbased \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5954
					-bps -oldpp -nozoom -noflip -nounicode \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5955
					-noutf8' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5956
			# add mplayer specific options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5957
			[[ "$cmd" == @(?(g)mplayer) ]] && COMPREPLY=( "${COMPREPLY[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5958
				$(compgen -W '-autoq -autosync -benchmark \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5959
					-framedrop -h -help -hardframedrop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5960
					-identify -input -lircconf -loop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5961
					-nojoystick -nolirc -nortc -playlist \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5962
					-quiet -really-quiet -rnd -sdp -skin \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5963
					-slave -softsleep -speed -sstep \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5964
					-use-stdin -dumpaudio -dumpfile \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5965
					-dumpstream -dumpvideo -dumpmicrodvdsub\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5966
					-dumpmpsub -dumpsrtsub -dumpjacosub \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5967
					-dumpsami -dumpsub -osdlevel -af \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5968
					-af-adv -ao -aofile -aop -delay -mixer \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5969
					-nowaveheader -bpp -brightness \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5970
					-contrast -display -double -dr -dxr2 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5971
					-fb -fbmode -fbmodeconfig -forcexv -fs \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5972
					-geometry -hue -icelayer -jpeg \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5973
					-monitor-dotclock -monitor-hfreq \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5974
					-monitor-vfreq -monitoraspect \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5975
					-nograbpointer -noslices -panscan \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5976
					-rootwin -saturation -screenw -screenh \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5977
					-stop-xscreensaver -vm -vo -vsync -wid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5978
					-xineramascreen -z -zrbw -zrcrop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5979
					-zrdev -zrfd -zrhelp -zrnorm -zrquality \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5980
					-zrvdec -zrhdec -zrxdoff -zrydoff -y \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5981
					-edl -edlout -enqueue -fixed-vo \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5982
					-menu -menu-root -menu-cfg -shuffle \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5983
					-format -aahelp -dfbopts -fstype \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5984
					-guiwid -nokeepaspect -x --help \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5985
					-aaosdcolor -aasubcolor -aadriver \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5986
					-aaextended -aaeight' -- $cur) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5987
			# add mencoder specific options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5988
			[[ "$cmd" = mencoder ]] && COMPREPLY=( "${COMPREPLY[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5989
				$(compgen -W '-audio-density -audio-delay \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5990
					-audio-preload -divx4opts -endpos \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5991
					-ffourcc -include -info -lameopts \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5992
					-lavcopts -noskip -o -oac -ofps -ovc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5993
					-passlogfile -skiplimit -vobsubout \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5994
					-vobsuboutindex -vobsuboutid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5995
					-xvidencopts -of --verbose' -- $cur) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5996
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5997
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5998
			_filedir '@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|ASF|vob|VOB|bin|BIN|dat|DAT|vcd|VCD|ps|PS|pes|PES|fli|FLI|flv|FLV|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[34]|MP[34]|m4v|M4V|og[gm]|OG[GM]|wav|WAV|dump|DUMP|mk[av]|MK[AV]|m4a|M4A|aac|AAC|m2v|M2V|dv|DV|rmvb|RMVB|mid|MID|ts|TS|3gp|mpc|MPC|flac|FLAC|flv|FLV|divx|DIVX)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  5999
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6000
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6001
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6002
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6003
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6004
complete $filenames -F _mplayer mplayer mencoder gmplayer kplayer
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6005
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6006
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6007
# KDE dcop completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6008
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6009
have dcop &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6010
_dcop()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6011
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6012
	local cur compstr
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6013
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6014
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6015
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6016
	if [ -z $cur ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6017
	    compstr=${COMP_WORDS[*]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6018
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6019
	    compstr=$( command echo ${COMP_WORDS[*]} | sed "s/ $cur$//" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6020
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6021
	COMPREPLY=( $( compgen -W '$( command $compstr | sed s/\(.*\)// )'  -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6022
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6023
complete -F _dcop dcop
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6024
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6025
# wvdial(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6026
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6027
have wvdial &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6028
_wvdial()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6029
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6030
	local cur prev config i IFS=$'\t\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6031
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6032
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6033
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6034
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6035
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6036
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6037
		--config)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6038
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6039
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6040
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6041
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6042
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6043
	case $cur in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6044
		-*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6045
			COMPREPLY=( $( compgen -W '--config --chat \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6046
				--remotename --help --version --no-syslog' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6047
				-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6048
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6049
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6050
			# start with global and personal config files
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6051
		       	config="/etc/wvdial.conf"$'\t'"$HOME/.wvdialrc"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6052
			# replace with command line config file if present
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6053
			for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6054
				if [[ "${COMP_WORDS[i]}" == "--config" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6055
					config=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6056
					break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6057
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6058
			done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6059
			# parse config files for sections and
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6060
			# remove default section
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6061
			COMPREPLY=( $( sed -ne \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6062
				    "s|^\[Dialer \($cur.*\)\]$|\1|p" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6063
				    $config 2>/dev/null |grep -v '^Defaults$'))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6064
			# escape spaces
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6065
			COMPREPLY=${COMPREPLY// /\\ }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6066
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6067
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6068
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6069
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6070
complete -F _wvdial wvdial
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6071
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6072
# gpg(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6073
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6074
have gpg &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6075
_gpg() 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6076
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6077
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6078
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6079
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6080
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6081
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6082
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6083
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6084
	-@(s|-sign|-clearsign|-decrypt-files|-load-extension)) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6085
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6086
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6087
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6088
	--@(export|@(?(l|nr|nrl)sign|edit)-key)) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6089
		# return list of public keys
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6090
		COMPREPLY=( $( compgen -W "$( gpg --list-keys 2>/dev/null | sed -ne 's@^pub.*/\([^ ]*\).*\(<\([^>]*\)>\).*$@\1 \3@p')" -- "$cur" ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6091
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6092
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6093
	-@(r|-recipient))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6094
		COMPREPLY=( $( compgen -W "$( gpg --list-keys 2>/dev/null | sed -ne 's@^pub.*<\([^>]*\)>.*$@\1@p')" -- "$cur" ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6095
		if [ -e ~/.gnupg/gpg.conf ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6096
			COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$( sed -ne 's@^[ \t]*group[ \t][ \t]*\([^=]*\).*$@\1@p' ~/.gnupg/gpg.conf  )" -- "$cur") )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6097
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6098
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6099
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6100
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6101
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6102
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6103
		COMPREPLY=( $( compgen -W '-s -b -e -f -c -d -a -r -u -Z -o -v\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6104
				-q -n -N $(gpg --dump-options)' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6105
	 fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6106
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6107
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6108
complete -F _gpg $default gpg
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6109
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6110
# iconv(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6111
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6112
have iconv &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6113
_iconv()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6114
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6115
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6116
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6117
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6118
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6119
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6120
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6121
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6122
		-@(f|t|-@(from|to)-code))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6123
			COMPREPLY=( $( compgen -W \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6124
			    '$( iconv --list | sed -e "s@//@@;" )' -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6125
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6126
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6127
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6128
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6129
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6130
	if [[ "$cur" = -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6131
		COMPREPLY=( $( compgen -W '--from-code -f --to-code -t --list
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6132
		--output -o --verbose' -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6133
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6134
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6135
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6136
complete -F _iconv $default iconv
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6137
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6138
# dict(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6139
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6140
{ have dict || have rdict; } && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6141
_dictdata()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6142
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6143
	dict $host $port $1 2>/dev/null | sed -ne \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6144
	    's/^['$'\t '']['$'\t '']*\([^'$'\t '']*\).*$/\1/p'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6145
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6146
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6147
_dict()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6148
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6149
	local cur prev host port db dictfile
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6150
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6151
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6152
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6153
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6154
	dictfile=/usr/share/dict/words
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6155
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6156
	for (( i=1; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6157
		case "${COMP_WORDS[i]}" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6158
		-@(h|--host))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6159
			host=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6160
			[ -n "$host" ] && host="-h $host"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6161
			i=$((++i))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6162
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6163
		-@(p|-port))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6164
			port=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6165
			[ -n "$port" ] && port="-p $port"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6166
			i=$((++i))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6167
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6168
		-@(d|-database))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6169
			db=${COMP_WORDS[i+1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6170
			[ -n "$db" ] && host="-d $db"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6171
			i=$((++i))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6172
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6173
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6174
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6175
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6176
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6177
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6178
	if [[ "$cur" = -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6179
		COMPREPLY=( $( compgen -W '-h --host -p --port -d --database \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6180
			       -m --match -s --strategy -c --config -C \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6181
			       --nocorrect -D --dbs -S --strats -H \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6182
			       --serverhelp -i --info -I --serverinfo \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6183
			       -a --noauth -u --user -k --key -V --version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6184
			       -L --license --help -v --verbose -r --raw \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6185
			       -P --pager --debug --html --pipesize --client' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6186
			       -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6187
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6188
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6189
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6190
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6191
	-@(d|-database|i|info))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6192
		COMPREPLY=( $( compgen -W '$( _dictdata -D )' -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6193
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6194
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6195
	-@(s|-strategy))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6196
		COMPREPLY=( $( compgen -W '$( _dictdata -S )' -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6197
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6198
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6199
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6200
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6201
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6202
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6203
	[ -r $dictfile ] && \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6204
		COMPREPLY=( $( compgen -W '$( cat $dictfile )' -- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6205
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6206
complete -F _dict $default dict rdict
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6207
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6208
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6209
# cdrecord(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6210
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6211
have cdrecord &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6212
_cdrecord()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6213
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6214
	local cur prev i generic_options track_options track_mode
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6215
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6216
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6217
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6218
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6219
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6220
	# foo=bar style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6221
	if [[ "$cur" == *=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6222
		prev=${cur/=*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6223
		cur=${cur/*=/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6224
		case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6225
			@(text|cue)file)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6226
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6227
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6228
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6229
			blank)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6230
				COMPREPLY=( $( compgen -W 'help all fast \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6231
				track unreserve trtail unclose session' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6232
				-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6233
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6234
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6235
			driveropts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6236
				COMPREPLY=( $( compgen -W 'burnfree noburnfree\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6237
				  varirec= audiomaster forcespeed noforcespeed\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6238
				  speedread nospeedread singlesession \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6239
				  nosinglesession hidecdr nohidecdr tattooinfo\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6240
				  tattoofile=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6241
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6242
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6243
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6244
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6245
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6246
	generic_options=(-version -v -V -d -silent -s -force -immed -dummy \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6247
			 -dao -raw -raw96r -raw96p -raw16 -multi -msinfo -toc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6248
			 -atip -fix -nofix -waiti -load -lock -eject -format \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6249
			 -setdropts -checkdrive -prcap -inq -scanbus -reset \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6250
			 -abort -overburn -ignsize -useinfo -packet -noclose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6251
			 -text debug= kdebug= kd= minbuf= speed= blank= fs= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6252
			 dev= gracetime= timeout= driver= driveropts= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6253
			 defpregap= pktsize= mcn= textfile= cuefile=)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6254
	track_options=(-audio -swab -data -mode2 -xa -xa1 -xa2 -xamix -cdi \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6255
		       -isosize -pad padsize= -nopad -shorttrack -noshorttrack\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6256
		       pregap= -preemp -nopreemp -copy -nocopy -scms tcsize= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6257
		       isrc= index=)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6258
	# look if previous was either a file or a track option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6259
	track_mode=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6260
	if [ $COMP_CWORD -gt 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6261
		if [ -f "$prev" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6262
			track_mode=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6263
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6264
			for (( i=0; i < ${#track_options[@]}; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6265
				if [[ "${track_options[i]}" == "$prev" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6266
					track_mode=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6267
					break
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6268
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6269
			done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6270
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6271
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6272
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6273
	# files are always eligible completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6274
	_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6275
	# track options are always available
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6276
	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W '${track_options[@]}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6277
	# general options are no more available after file or track option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6278
	if [ $track_mode -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6279
		COMPREPLY=( "${COMPREPLY[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6280
			    $( compgen -W '${generic_options[@]}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6281
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6282
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6283
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6284
complete -F _cdrecord $filenames cdrecord
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6285
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6286
# mkisofs(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6287
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6288
have mkisofs &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6289
_mkisofs()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6290
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6291
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6292
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6293
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6294
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6295
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6296
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6297
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6298
		-@(o|abstract|biblio|check-session|copyright|log-file|root-info|prep-boot|*-list))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6299
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6300
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6301
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6302
		-*-charset)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6303
			COMPREPLY=( $( mkisofs -input-charset help 2>&1 | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6304
					tail +3 | grep "^$cur") )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6305
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6306
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6307
		-uid)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6308
			_uids
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6309
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6310
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6311
		-gid)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6312
			_gids
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6313
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6314
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6315
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6316
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6317
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6318
		COMPREPLY=( $( compgen -W '-abstract -A -allow-lowercase \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6319
				-allow-multidot -biblio -cache-inodes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6320
				-no-cache-inodes -b -eltorito-alt-boot -B -G \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6321
				-hard-disk-boot -no-emul-boot -no-boot \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6322
				-boot-load-seg -boot-load-size \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6323
				-boot-info-table -C -c -check-oldname \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6324
				-check-session -copyright -d -D -dir-mode \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6325
				-dvd-video -f -file-mode -gid -gui \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6326
				-graft-points -hide -hide-list -hidden \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6327
				-hidden-list -hide-joliet -hide-joliet-list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6328
				-hide-joliet-trans-tbl -hide-rr-moved \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6329
				-input-charset -output-charset -iso-level -J \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6330
				-joliet-long -jcharset -l -L -log-file -m \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6331
				-exclude-list -max-iso9660-filenames -M -N \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6332
				-new-dir-mode -nobak -no-bak -force-rr -no-rr \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6333
				-no-split-symlink-components \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6334
				-no-split-symlink-fields -o -pad -no-pad \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6335
				-path-list -P -p -print-size -quiet -R -r \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6336
				-relaxed-filenames -sort -split-output \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6337
				-stream-media-size -stream-file-name -sysid -T\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6338
				-table-name -ucs-level -udf -uid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6339
				-use-fileversion -U -no-iso-translate -V \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6340
				-volset -volset-size -volset-seqno -v -x -z \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6341
				-hfs -apple -map -magic -hfs-creator \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6342
				-hfs-type -probe -no-desktop -mac-name \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6343
				-boot-hfs-file -part -auto -cluster-size \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6344
				-hide-hfs -hide-hfs-list -hfs-volid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6345
				-icon-position -root-info -prep-boot \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6346
				-input-hfs-charset -output-hfs-charset \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6347
				-hfs-unlock -hfs-bless -hfs-parms --cap \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6348
				--netatalk --double --ethershare --ushare \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6349
				--exchange --sgi --xinet --macbin --single \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6350
				--dave --sfm --osx-double --osx-hfs' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6351
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6352
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6353
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6354
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6355
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6356
complete -F _mkisofs $filenames mkisofs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6357
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6358
# mc(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6359
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6360
have mc &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6361
_mc()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6362
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6363
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6364
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6365
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6366
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6367
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6368
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6369
	# -name value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6370
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6371
		-@(e|v|l|P))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6372
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6373
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6374
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6375
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6376
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6377
	# --name=value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6378
	if [[ "$cur" == *=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6379
		prev=${cur/=*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6380
		cur=${cur/*=/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6381
		case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6382
			--@(edit|view|ftplog|printwd))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6383
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6384
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6385
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6386
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6387
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6388
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6389
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6390
		COMPREPLY=( $( compgen -W '-a --stickchars -b --nocolor -c \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6391
			--color -C --colors= -d --nomouse -e --edit= -f \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6392
			--datadir -k --resetsoft -l --ftplog= -P --printwd= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6393
			-s --slow -t --termcap -u --nosubshell -U --subshell \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6394
			-v --view= -V --version -x --xterm -h --help' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6395
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6396
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6397
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6398
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6399
complete -F _mc $filenames mc
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6400
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6401
# yum(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6402
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6403
have yum && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6404
_yum()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6405
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6406
	local cur prev special
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6407
	
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6408
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6409
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6410
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6411
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6412
	for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6413
		if [[ ${COMP_WORDS[i]} == @(install|update|upgrade|remove|erase|deplist) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6414
			special=${COMP_WORDS[i]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6415
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6416
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6417
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6418
	if [ -n "$special" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6419
	    case $special in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6420
		install|deplist)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6421
		    COMPREPLY=( $( compgen -W '$( yum -C list | cut -d" " -f1 )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6422
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6423
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6424
		*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6425
		    _rpm_installed_packages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6426
		    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6427
		    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6428
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6429
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6430
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6431
	case $cur in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6432
	    --*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6433
		COMPREPLY=( $( compgen -W '--installroot --version --help --enablerepo --disablerepo --exclude --obsoletes --noplugins' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6434
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6435
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6436
	    -*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6437
		COMPREPLY=( $( compgen -W '-c -e -d -y -t -R -C -h' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6438
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6439
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6440
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6441
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6442
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6443
	    list)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6444
		COMPREPLY=( $( compgen -W 'all available updates installed extras obsoletes recent' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6445
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6446
	    clean)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6447
		COMPREPLY=( $( compgen -W 'packages headers metadata cache dbcache all' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6448
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6449
	    localinstall)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6450
		_filedir rpm
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6451
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6452
	    -c)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6453
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6454
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6455
	    --installroot)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6456
		_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6457
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6458
	    *)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6459
		COMPREPLY=( $( compgen -W 'install update check-update upgrade remove list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6460
						search info provides clean groupinstall groupupdate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6461
						grouplist deplist erase groupinfo groupremove \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6462
						localinstall localupdate makecache resolvedep \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6463
						shell whatprovides' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6464
		;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6465
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6466
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6467
complete -F _yum $filenames yum
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6468
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6469
# yum-arch(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6470
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6471
_yum_arch()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6472
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6473
    local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6474
    COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6475
    cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6476
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6477
    case "$cur" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6478
	-*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6479
	    COMPREPLY=( $( compgen -W '-d -v -vv -n -c -z -s -l -q' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6480
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6481
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6482
	    _filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6483
	    ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6484
    esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6485
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6486
    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6487
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6488
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6489
complete -F _yum_arch $filenames yum-arch
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6490
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6491
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6492
# ImageMagick completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6493
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6494
have convert && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6495
_ImageMagick()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6496
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6497
	local prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6498
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6499
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6500
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6501
		-channel)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6502
			COMPREPLY=( $( compgen -W 'Red Green Blue Opacity \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6503
				Matte Cyan Magenta Yellow Black' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6504
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6505
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6506
		-colormap)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6507
			COMPREPLY=( $( compgen -W 'shared private' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6508
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6509
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6510
		-colorspace)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6511
			COMPREPLY=( $( compgen -W 'GRAY OHTA RGB Transparent \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6512
				XYZ YCbCr YIQ YPbPr YUV CMYK' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6513
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6514
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6515
		-compose)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6516
			COMPREPLY=( $( compgen -W 'Over In Out Atop Xor Plus \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6517
				Minus Add Subtract Difference Multiply Bumpmap\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6518
				Copy CopyRed CopyGreen CopyBlue CopyOpacity' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6519
				-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6520
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6521
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6522
		-compress)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6523
			COMPREPLY=( $( compgen -W 'None BZip Fax Group4 JPEG \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6524
				Lossless LZW RLE Zip' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6525
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6526
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6527
		-dispose)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6528
			COMPREPLY=( $( compgen -W 'Undefined None Background \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6529
						    Previous' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6530
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6531
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6532
		-encoding)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6533
			COMPREPLY=( $( compgen -W 'AdobeCustom AdobeExpert \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6534
				AdobeStandard AppleRoman BIG5 GB2312 Latin2 \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6535
				None SJIScode Symbol Unicode Wansung' -- $cur))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6536
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6537
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6538
		-endian)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6539
			COMPREPLY=( $( compgen -W 'MSB LSB' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6540
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6541
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6542
		-filter)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6543
			COMPREPLY=( $( compgen -W 'Point Box Triangle Hermite \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6544
				Hanning Hamming Blackman Gaussian Quadratic \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6545
				Cubic Catrom Mitchell Lanczos Bessel Sinc' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6546
				-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6547
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6548
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6549
		-format)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6550
			COMPREPLY=( $( convert -list format | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6551
				    awk '/ [r-][w-][+-] / {print $1}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6552
				    tr -d '*' | tr [:upper:] [:lower:] | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6553
				    grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6554
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6555
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6556
		-gravity)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6557
			COMPREPLY=( $( compgen -W 'Northwest North NorthEast \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6558
				West Center East SouthWest South SouthEast' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6559
				-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6560
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6561
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6562
		-intent)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6563
			COMPREPLY=( $( compgen -W 'Absolute Perceptual \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6564
					Relative Saturation' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6565
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6566
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6567
		-interlace)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6568
			COMPREPLY=( $( compgen -W 'None Line Plane Partition' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6569
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6570
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6571
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6572
		-limit)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6573
			COMPREPLY=( $( compgen -W 'Disk File Map Memory' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6574
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6575
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6576
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6577
		-list)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6578
			COMPREPLY=( $( compgen -W 'Delegate Format Magic \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6579
					Module Resource Type' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6580
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6581
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6582
		-map)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6583
			COMPREPLY=( $( compgen -W 'best default gray red \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6584
					green blue' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6585
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6586
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6587
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6588
		-noise)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6589
			COMPREPLY=( $( compgen -W 'Uniform Gaussian \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6590
					Multiplicative \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6591
				Impulse Laplacian Poisson' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6592
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6593
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6594
		-preview)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6595
			COMPREPLY=( $( compgen -W 'Rotate Shear Roll Hue \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6596
					Saturation Brightness Gamma Spiff \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6597
					Dull Grayscale Quantize Despeckle \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6598
					ReduceNoise AddNoise Sharpen Blur \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6599
					Treshold EdgeDetect Spread Shade \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6600
					Raise Segment Solarize Swirl Implode \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6601
					Wave OilPaint CharcoalDrawing JPEG' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6602
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6603
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6604
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6605
		-@(mask|profile|texture|tile|write))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6606
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6607
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6608
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6609
		-type)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6610
			COMPREPLY=( $( compgen -W 'Bilevel Grayscale Palette \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6611
					PaletteMatte TrueColor TrueColorMatte \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6612
					ColorSeparation ColorSeparationlMatte \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6613
					Optimize' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6614
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6615
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6616
		-units)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6617
			COMPREPLY=( $( compgen -W 'Undefined PixelsPerInch \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6618
					PixelsPerCentimeter' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6619
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6620
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6621
		-virtual-pixel)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6622
			COMPREPLY=( $( compgen -W 'Constant Edge mirror tile' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6623
					-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6624
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6625
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6626
		-visual)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6627
			COMPREPLY=( $( compgen -W 'StaticGray GrayScale \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6628
					StaticColor PseudoColor TrueColor \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6629
					DirectColor defaut visualid' -- $cur ))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6630
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6631
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6632
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6633
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6634
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6635
_convert()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6636
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6637
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6638
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6639
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6640
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6641
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6642
	_ImageMagick
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6643
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6644
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6645
		COMPREPLY=( $( compgen -W '-adjoin -affine -antialias -append \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6646
			-authenticate -average -background -black-threshold \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6647
			-blue-primary -blur -border -bordercolor -channel \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6648
			-charcoal -chop -clip -coalesce -colorize -colors \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6649
			-colorspace -comment -compress -contrast -convolve \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6650
			-crop -cycle -debug -deconstruct -delay -density \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6651
			-depth -despeckle -display -dispose -dither -draw \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6652
			-edge -emboss -encoding -endian -enhance -equalize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6653
			-extract -fill -filter -flatten -flip -flop -font \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6654
			-frame -fuzz -gamma -gaussian -geometry \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6655
			-green-primary -gravity -help -implode -intent \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6656
			-interlace -label -lat -level -limit -list -log -loop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6657
			-map -mask -matte -median -modulate -monochrome \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6658
			-morph -mosaic -negate -noop -noise -normalize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6659
			-opaque -ordered-dither -page -paint -ping -pointsize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6660
			-preview -profile -quality -raise -random-threshold \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6661
			-region -raise -red-primary -render -resize -resample \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6662
			-roll -rotate -sample -sampling-factor -scale -scene \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6663
			-seed -segment -shade -sharpen -shave -shear -size \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6664
			-solarize -spread -stroke -strokewidth -swirl \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6665
			-texture -threshold -thumbnail -tile -transform \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6666
			-transparent -treedepth -trim -type -undercolor \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6667
			-units -unsharp -verbose -version -view \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6668
			-virtual-pixel -wave -white-point -white-threshold \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6669
			-write' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6670
	elif [[ "$cur" == +* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6671
		COMPREPLY=( $( compgen -W '+adjoin +append +compress \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6672
			+contrast +debug +dither +endian +gamma +label +map \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6673
			+mask +matte +negate +noise +page +raise +render \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6674
			+write' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6675
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6676
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6677
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6678
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6679
complete -F _convert $filenames convert
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6680
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6681
_mogrify()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6682
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6683
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6684
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6685
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6686
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6687
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6688
	_ImageMagick
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6689
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6690
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6691
		COMPREPLY=( $( compgen -W '-affine -antialias -authenticate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6692
			-background -black-threshold -blue-primary -blur \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6693
			-border -bordercolor -channel -charcoal -chop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6694
			-colorize -colors -colorspace -comment -compress \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6695
			-contrast -convolve -crop -cycle -debug -delay \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6696
			-density -depth -despeckle -display -dispose -dither \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6697
			-draw -edge -emboss -encoding -endian -enhance \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6698
			-equalize -extract -fill -filter -flip -flop -font \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6699
			-format -frame -fuzz -gamma -gaussian -geometry \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6700
			-green-primary -implode -interlace -help -label -lat \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6701
			-level -limit -list -log -loop -map -mask -matte \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6702
			-median -modulate -monochrome -negate -noop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6703
			-normalize -opaque -page -paint -fill -ordered-dither \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6704
			-pointsize -profile -quality -raise -random-threshold \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6705
			-red-primary -region -resample -resize -roll -rotate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6706
			-sample -sampling-factor -scale -scene -seed -segment \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6707
			-shade -sharpen -shear -size -solarize -spread \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6708
			-stroke -strokewidth -swirl -texture -threshold \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6709
			-thumbnail -tile -transform -transparent -treedepth \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6710
			-trim -type -undercolor -units -unsharp -verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6711
			-version -view -virtual-pixel -wave -white-point \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6712
			-white-threshold' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6713
	elif [[ "$cur" == +* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6714
		COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6715
			+endian +gamma +label +map +mask +matte +negate +page \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6716
			+raise' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6717
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6718
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6719
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6720
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6721
complete -F _mogrify $filenames mogrify
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6722
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6723
_display()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6724
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6725
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6726
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6727
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6728
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6729
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6730
	_ImageMagick
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6731
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6732
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6733
		COMPREPLY=( $( compgen -W '-authenticate -backdrop -border \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6734
			-colormap -colors -colorspace -comment -compress \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6735
			-contrast -crop -debug -delay -density -depth \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6736
			-despeckle -display -dispose -dither -edge -endian \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6737
			-enhance -extract -filter -flip -flop -frame -gamma \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6738
			-geometry -help -immutable -interlace -label -limit \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6739
			-log -map -matte -monochrome -negate -noop -page \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6740
			-quality -raise -remote -roll -rotate -sample \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6741
			-sampling-factor -scene -segment -sharpen -size \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6742
			-texture -treedepth -trim -update -verbose -version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6743
			-virtual-pixel -window -window_group -write' -- $cur))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6744
	elif [[ "$cur" == +* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6745
		COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6746
			+endian +gamma +label +map +matte +negate +page \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6747
			+raise +write' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6748
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6749
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6750
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6751
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6752
complete -F _display $filenames display
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6753
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6754
_animate()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6755
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6756
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6757
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6758
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6759
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6760
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6761
	_ImageMagick
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6762
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6763
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6764
		COMPREPLY=( $( compgen -W '-authenticate -backdrop -colormap \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6765
			-colors -colorspace -crop -debug -delay -density \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6766
			-depth -display -dither -extract -gamma -geometry \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6767
			-help -interlace -limit -log -matte -map -monochrome \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6768
			-noop -pause -remote -rotate -sampling-factor -scene \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6769
			-size -treedepth -trim -verbose -version -visual \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6770
			-virtual-pixel -window' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6771
	elif [[ "$cur" == +* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6772
		COMPREPLY=( $( compgen -W '+debug +dither +gamma +map +matte' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6773
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6774
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6775
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6776
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6777
complete -F _animate $filenames animate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6778
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6779
_identify()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6780
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6781
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6782
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6783
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6784
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6785
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6786
	_ImageMagick
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6787
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6788
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6789
		COMPREPLY=( $( compgen -W '-authenticate -debug -density \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6790
			-depth -extract -format -help -interlace -limit -list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6791
			-log -size -sampling-factor -verbose -version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6792
			-virtual-pixel' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6793
	elif [[ "$cur" == +* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6794
		COMPREPLY=( $( compgen -W '+debug ' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6795
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6796
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6797
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6798
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6799
complete -F _identify $filenames identify
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6800
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6801
_montage()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6802
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6803
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6804
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6805
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6806
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6807
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6808
	_ImageMagick
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6809
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6810
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6811
		COMPREPLY=( $( compgen -W '-adjoin -affine -authenticate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6812
			-blue-primary -blur -colors -colorspace -comment \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6813
			-compose -compress -crop -debug -density -depth \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6814
			-display -dispose -dither -draw -encoding -endian \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6815
			-extract -fill -filter -flip -flop -frame -gamma \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6816
			-geometry -gravity -green-primary -interlace -help \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6817
			-label -limit -log -matte -mode -monochrome -noop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6818
			-page -pointsize -quality -red-primary -resize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6819
			-rotate -sampling-factor -scene -shadow -size \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6820
			-stroke -texture -thumbnail -tile -transform \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6821
			-transparent -treedepth -trim -type -verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6822
			-version -virtual-pixel -white-point' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6823
	elif [[ "$cur" == +* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6824
		COMPREPLY=( $( compgen -W '+adjoin +compress +debug +dither \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6825
			+endian +gamma +label +matte +page' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6826
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6827
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6828
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6829
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6830
complete -F _montage $filenames montage
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6831
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6832
_composite()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6833
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6834
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6835
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6836
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6837
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6838
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6839
	_ImageMagick
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6840
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6841
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6842
		COMPREPLY=( $( compgen -W '-affine -authenticate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6843
			-blue-primary -colors -colorspace -comment -compose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6844
			-compress -debug -density -depth -displace -display \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6845
			-dispose -dissolve -dither -encoding -endian -extract \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6846
			-filter -font -geometry -gravity -green-primary -help \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6847
			-interlace -label -limit -log -matte -monochrome \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6848
			-negate -page -profile -quality -red-primary -rotate \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6849
			-resize -sampling-factor -scene -sharpen -size \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6850
			-stegano -stereo -thumbnail -tile -transform \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6851
			-treedepth -type -units -unsharp -verbose -version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6852
			-virtual-pixel -watermark -white-point -write' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6853
			-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6854
	elif [[ "$cur" == +* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6855
		COMPREPLY=( $( compgen -W '+compress +debug +dither +endian +label \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6856
			+matte +negate +page +write' -- $cur ) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6857
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6858
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6859
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6860
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6861
complete -F _composite $filenames composite
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6862
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6863
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6864
# dd(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6865
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6866
have dd &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6867
_dd()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6868
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6869
	 local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6870
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6871
	 COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6872
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6873
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6874
	 case "$cur" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6875
	 if=*|of=*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6876
		 cur=${cur#*=}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6877
		 _filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6878
		 return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6879
		 ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6880
	 conv=*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6881
		 cur=${cur#*=}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6882
		 COMPREPLY=( $( compgen -W 'ascii ebcdic ibm block unblock \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6883
				lcase notrunc ucase swab noerror sync' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6884
				-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6885
		 return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6886
		 ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6887
	 esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6888
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6889
	 _expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6890
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6891
	 COMPREPLY=( $( compgen -W '--help --version' -- $cur ) \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6892
		     $( compgen -W 'bs cbs conv count ibs if obs of seek skip'\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6893
				-S '=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6894
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6895
complete -F _dd $nospace $filenames dd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6896
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6897
# CUPS cancel(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6898
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6899
have cancel &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6900
_cancel()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6901
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6902
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6903
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6904
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6905
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6906
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6907
	COMPREPLY=( $( lpstat | cut -d' ' -f1 | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6908
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6909
complete -F _cancel $filenames cancel
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6910
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6911
# aspell(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6912
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6913
have aspell && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6914
_aspell_dictionary()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6915
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6916
	local datadir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6917
	datadir=/usr/lib/aspell
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6918
	COMPREPLY=( $( command ls $datadir/*.@(multi|alias) ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6919
	COMPREPLY=( ${COMPREPLY[@]%.@(multi|alias)} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6920
	COMPREPLY=( $( compgen -W '${COMPREPLY[@]#$datadir/}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6921
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6922
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6923
_aspell()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6924
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6925
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6926
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6927
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6928
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6929
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6930
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6931
	# --name value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6932
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6933
		@(-c|-p|check))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6934
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6935
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6936
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6937
		@(dump|create|merge))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6938
			COMPREPLY=( $( compgen -W 'master personal repl' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6939
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6940
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6941
		-d)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6942
			_aspell_dictionary
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6943
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6944
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6945
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6946
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6947
	# --name=value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6948
	if [[ "$cur" == *=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6949
		prev=${cur/=*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6950
		cur=${cur/*=/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6951
		case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6952
			--@(conf|personal|repl|per-conf))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6953
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6954
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6955
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6956
			--@(conf-dir|data-dir|dict-dir|home-dir|local-data-dir|prefix))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6957
				_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6958
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6959
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6960
			--master)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6961
				_aspell_dictionary
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6962
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6963
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6964
			--mode)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6965
				COMPREPLY=( $( compgen -W 'none url email sgml tex' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6966
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6967
				;; 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6968
			--sug-mode)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6969
				COMPREPLY=( $( compgen -W 'ultra fast normal bad-speller' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6970
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6971
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6972
			--keymapping)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6973
				COMPREPLY=( $( compgen -W 'aspell ispell' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6974
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6975
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6976
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6977
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6978
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6979
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6980
		COMPREPLY=( $( compgen -W '--conf= --conf-dir= --data-dir= --dict-dir= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6981
			--encoding= --add-filter= --rem-filter= --mode= -e \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6982
			-H -t --add-extra-dicts= --rem-extra-dicts= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6983
			--home-dir= -W --ignore= --ignore-accents \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6984
			--dont-ignore-accents --ignore-case --dont-ignore-case \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6985
			--ignore-repl --dont-ignore-repl --jargon= --keyboard= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6986
			--lang= --language-tag= --local-data-dir= -d --master= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6987
			--module= --add-module-search-order= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6988
			--rem-module-search-order= --per-conf= -p --personal= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6989
			--prefix= --repl= -C -B --run-together --dont-run-together \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6990
			--run-together-limit= --run-together-min= --save-repl \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6991
			--dont-save-repl --set-prefix --dont-set-prefix --size= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6992
			--spelling= --strip-accents --dont-strip-accents \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6993
			--sug-mode= --add-word-list-path= --rem-word-list-path= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6994
			-b -x --backup -b|-x --dont-backup --reverse --dont-reverse \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6995
			--time --dont-time --keymapping= --add-email-quote= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6996
			--rem-email-quote= --email-margin= --add-tex-command= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6997
			--rem-tex-command= --tex-check-comments \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6998
			--dont-tex-check-comments --add-tex-extension= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  6999
			--rem-tex-extension= --add-sgml-check= --rem-sgml-check= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7000
			--add-sgml-extension= --rem-sgml-extension=' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7001
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7002
		COMPREPLY=( $( compgen -W '-? help -c check -a pipe -l list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7003
			config config soundslike filter -v version dump \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7004
			create merge' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7005
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7006
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7007
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7008
complete -F _aspell $filenames aspell
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7009
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7010
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7011
# xmms(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7012
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7013
have xmms &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7014
_xmms()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7015
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7016
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7017
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7018
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7019
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7020
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7021
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7022
		COMPREPLY=( $( compgen -W '-h --help -r --rew -p --play \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7023
			-u --pause -s --stop -t --play-pause -f --fwd -e \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7024
			--enqueue -m --show-main-window -i --sm-client-id \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7025
			-v --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7026
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7027
		_filedir '@(mp[23]|MP[23]|ogg|OGG|wav|WAV|pls|m3u|xm|mod|s[3t]m|it|mtm|ult|flac)'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7028
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7029
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7030
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7031
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7032
complete -F _xmms $filenames xmms
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7033
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7034
# info(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7035
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7036
have info &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7037
_info()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7038
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7039
	local cur infopath UNAME
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7040
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7041
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7042
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7043
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7044
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7045
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7046
	# default completion if parameter contains /
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7047
	if [[ "$cur" == */* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7048
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7049
		return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7050
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7051
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7052
	infopath='/usr/share/info'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7053
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7054
	if [ "${INFOPATH: -1:1}" == ':' ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7055
		infopath=${INFOPATH}${infopath}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7056
	elif [ ${INFOPATH:+set} ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7057
		infopath=$INFOPATH
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7058
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7059
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7060
	infopath=$infopath:
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7061
	if [ -n "$cur" ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7062
		infopath="${infopath//://$cur* }"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7063
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7064
		infopath="${infopath//:// }"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7065
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7066
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7067
	# redirect stderr for when path doesn't exist
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7068
	COMPREPLY=( $( eval command ls "$infopath" 2>/dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7069
	# weed out directory path names and paths to info pages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7070
	COMPREPLY=( ${COMPREPLY[@]##*/?(:)} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7071
	# weed out info dir file
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7072
	for (( i=0 ; i < ${#COMPREPLY[@]} ; ++i )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7073
		if [ "${COMPREPLY[$i]}" == 'dir' ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7074
			unset COMPREPLY[$i];
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7075
		fi;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7076
	done  
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7077
	# strip suffix from info pages
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7078
	COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2)} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7079
	COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7080
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7081
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7082
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7083
complete -F _info $filenames info
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7084
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7085
# dhclient(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7086
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7087
have dhclient && _dhclient()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7088
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7089
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7090
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7091
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7092
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7093
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7094
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7095
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7096
		-@(cf|lf|pf|sf))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7097
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7098
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7099
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7100
		-s)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7101
			_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7102
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7103
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7104
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7105
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7106
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7107
		COMPREPLY=( $( compgen -W '-p -d -q -1 -r -lf -pf \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7108
			-cf -sf -s -g -n -nw -w' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7109
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7110
		_available_interfaces
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7111
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7112
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7113
complete -F _dhclient dhclient
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7114
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7115
# lvm(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7116
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7117
have lvm && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7118
_volumegroups()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7119
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7120
	COMPREPLY=( $(compgen -W "$( vgscan 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7121
	    sed -n -e 's|.*Found.*"\(.*\)".*$|\1|p' )" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7122
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7123
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7124
_physicalvolumes()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7125
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7126
	COMPREPLY=( $(compgen -W "$( pvscan 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7127
	    sed -n -e 's|^.*PV \(.*\) VG.*$|\1|p' )" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7128
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7129
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7130
_logicalvolumes()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7131
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7132
	COMPREPLY=( $(compgen -W "$( lvscan 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7133
	    sed -n -e "s|^.*'\(.*\)'.*$|\1|p" )" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7134
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7135
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7136
_units()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7137
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7138
	COMPREPLY=( $( compgen -W 'h s b k m g t H K M G T' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7139
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7140
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7141
_sizes()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7142
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7143
	COMPREPLY=( $( compgen -W 'k K m M g G t T' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7144
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7145
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7146
_args()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7147
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7148
	args=0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7149
	if [[ "${COMP_WORDS[0]}" == lvm ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7150
		offset=2
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7151
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7152
		offset=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7153
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7154
	for (( i=$offset; i < COMP_CWORD; i++ )); do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7155
		if [[ "${COMP_WORDS[i]}" != -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7156
			args=$(($args + 1))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7157
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7158
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7159
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7160
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7161
_lvmdiskscan()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7162
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7163
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7164
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7165
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7166
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7167
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7168
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7169
		COMPREPLY=( $( compgen -W '-d --debug -h -? --help -l \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7170
			--lvmpartition -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7171
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7172
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7173
complete -F _lvmdiskscan lvmdiskscan
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7174
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7175
_pvscan()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7176
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7177
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7178
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7179
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7180
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7181
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7182
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7183
		COMPREPLY=( $( compgen -W '-d --debug -e \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7184
			--exported -n --novolumegroup -h -? \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7185
			--help --ignorelockingfailure -P \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7186
			--partial -s --short -u --uuid -v \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7187
			--verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7188
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7189
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7190
complete -F _pvscan pvscan
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7191
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7192
_pvs()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7193
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7194
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7195
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7196
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7197
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7198
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7199
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7200
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7201
		-@(o|O|-options|-sort))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7202
			COMPREPLY=( $( compgen -W 'pv_fmt pv_uuid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7203
				pv_size pv_free pv_used pv_name \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7204
				pv_attr pv_pe_count \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7205
				pv_pe_alloc_count' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7206
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7207
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7208
		--units)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7209
			_units
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7210
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7211
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7212
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7213
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7214
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7215
		COMPREPLY=( $( compgen -W '--aligned -a --all -d --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7216
			-h -? --help --ignorelockingfailure --noheadings \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7217
			--nosuffix -o --options -O --sort \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7218
			--separator --unbuffered --units \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7219
			-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7220
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7221
		_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7222
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7223
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7224
complete -F _pvs pvs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7225
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7226
_pvdisplay()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7227
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7228
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7229
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7230
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7231
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7232
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7233
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7234
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7235
		--units)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7236
			_units
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7237
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7238
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7239
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7240
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7241
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7242
		COMPREPLY=( $( compgen -W '-c --colon -C --columns --units \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7243
			-v --verbose -d --debug -h --help --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7244
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7245
		_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7246
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7247
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7248
complete -F _pvdisplay pvdisplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7249
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7250
_pvchange()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7251
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7252
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7253
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7254
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7255
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7256
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7257
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7258
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7259
		-@(A|x|-autobackup|--allocatable))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7260
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7261
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7262
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7263
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7264
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7265
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7266
		COMPREPLY=( $( compgen -W '-a --all -A --autobackup \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7267
			-d --debug -h --help -t --test -u --uuid -x \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7268
			--allocatable -v --verbose --addtag --deltag \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7269
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7270
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7271
		_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7272
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7273
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7274
complete -F _pvchange pvchange
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7275
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7276
_pvcreate()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7277
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7278
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7279
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7280
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7281
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7282
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7283
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7284
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7285
		--restorefile)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7286
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7287
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7288
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7289
		-@(M|-metadatatype))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7290
			COMPREPLY=( $( compgen -W '1 2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7291
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7292
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7293
		--metadatacopies)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7294
			COMPREPLY=( $( compgen -W '0 1 2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7295
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7296
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7297
		--@(metadatasize|setphysicalvolumesize))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7298
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7299
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7300
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7301
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7302
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7303
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7304
		COMPREPLY=( $( compgen -W '--restorefile -d --debug -f \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7305
			--force -h -? --help --labelsector -M --metadatatype \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7306
			--metadatacopies --metadatasize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7307
			--setphysicalvolumesize -t --test -u --uuid uuid -v \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7308
			--verbose -y --yes --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7309
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7310
		_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7311
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7312
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7313
complete -F _pvcreate pvcreate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7314
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7315
_pvmove()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7316
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7317
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7318
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7319
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7320
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7321
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7322
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7323
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7324
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7325
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7326
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7327
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7328
		-@(n|-name))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7329
			_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7330
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7331
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7332
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7333
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7334
		COMPREPLY=( $( compgen -W '--abort -A --autobackup \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7335
			-b --background -d --debug -f --force -h -? \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7336
			--help -i --interval -t --test -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7337
			--version -n --name' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7338
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7339
		_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7340
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7341
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7342
complete -F _pvmove pvmove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7343
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7344
_pvremove()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7345
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7346
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7347
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7348
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7349
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7350
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7351
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7352
		COMPREPLY=( $( compgen -W '-d --debug -f --force -h -? \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7353
			--help -y --yes -t --test -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7354
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7355
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7356
		_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7357
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7358
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7359
complete -F _pvremove pvremove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7360
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7361
_vgscan()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7362
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7363
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7364
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7365
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7366
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7367
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7368
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7369
		COMPREPLY=( $( compgen -W '-d --debug -h --help \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7370
			--ignorelockingfailure --mknodes -P \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7371
			--partial -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7372
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7373
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7374
complete -F _vgscan vgscan
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7375
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7376
_vgs()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7377
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7378
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7379
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7380
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7381
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7382
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7383
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7384
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7385
		-@(o|O|-options|-sort))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7386
			COMPREPLY=( $( compgen -W 'vg_fmt vg_uuid vg_name \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7387
				vg_attr vg_size vg_free vg_sysid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7388
				vg_extent_size vg_extent_count vg_free_count \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7389
				max_lv max_pv pv_count lv_count snap_count \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7390
				vg_seqno' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7391
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7392
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7393
		--units)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7394
			_units
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7395
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7396
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7397
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7398
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7399
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7400
		COMPREPLY=( $( compgen -W '--aligned -d --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7401
			-h --help --ignorelockingfailure --noheadings \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7402
			--nosuffix -o --options -O --sort -P --partial \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7403
			--separator --unbuffered --units \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7404
			-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7405
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7406
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7407
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7408
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7409
complete -F _vgs vgs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7410
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7411
_vgdisplay()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7412
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7413
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7414
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7415
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7416
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7417
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7418
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7419
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7420
		--units)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7421
			_units
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7422
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7423
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7424
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7425
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7426
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7427
		COMPREPLY=( $( compgen -W '-c --colon -C --columns --units \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7428
			-P --partial -A --activevolumegroups -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7429
			-d --debug -h --help --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7430
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7431
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7432
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7433
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7434
complete -F _vgdisplay vgdisplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7435
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7436
_vgchange()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7437
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7438
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7439
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7440
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7441
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7442
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7443
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7444
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7445
		-@(a|A|x|-available|-autobackup|-resizeable))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7446
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7447
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7448
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7449
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7450
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7451
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7452
		COMPREPLY=( $( compgen -W '-A --autobackup --alloc -P \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7453
			--partial -d --debug -h --help --ignorelockingfailure \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7454
			-t --test -u --uuid -v --verbose --version -a \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7455
			--available -x --resizeable -l --logicalvolume \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7456
			--addtag --deltag' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7457
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7458
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7459
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7460
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7461
complete -F _vgchange vgchange
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7462
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7463
_vgcreate()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7464
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7465
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7466
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7467
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7468
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7469
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7470
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7471
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7472
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7473
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7474
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7475
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7476
		-@(M|-metadatatype))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7477
			COMPREPLY=( $( compgen -W '1 2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7478
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7479
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7480
		-@(s|-physicalextentsize))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7481
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7482
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7483
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7484
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7485
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7486
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7487
		COMPREPLY=( $( compgen -W '-A --autobackup --addtag \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7488
			--alloc -d --debug -h --help -l --maxlogicalvolumes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7489
			-M --metadatatype -p --maxphysicalvolumes -s \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7490
			--physicalextentsize -t --test -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7491
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7492
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7493
		_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7494
		if [ $args -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7495
			_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7496
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7497
			_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7498
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7499
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7500
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7501
complete -F _vgcreate vgcreate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7502
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7503
_vgremove()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7504
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7505
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7506
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7507
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7508
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7509
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7510
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7511
		COMPREPLY=( $( compgen -W '-d --debug -h --help -t --test \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7512
		-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7513
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7514
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7515
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7516
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7517
complete -F _vgremove vgremove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7518
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7519
_vgrename()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7520
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7521
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7522
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7523
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7524
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7525
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7526
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7527
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7528
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7529
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7530
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7531
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7532
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7533
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7534
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7535
		COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -h \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7536
			-? --help -t --test -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7537
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7538
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7539
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7540
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7541
complete -F _vgrename vgrename
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7542
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7543
_vgreduce()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7544
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7545
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7546
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7547
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7548
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7549
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7550
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7551
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7552
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7553
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7554
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7555
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7556
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7557
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7558
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7559
		COMPREPLY=( $( compgen -W '-a --all -A --autobackup -d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7560
			--debug -h --help --removemissing -t --test -v \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7561
			--verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7562
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7563
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7564
		_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7565
		if [ $args -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7566
			_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7567
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7568
			_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7569
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7570
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7571
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7572
complete -F _vgreduce vgreduce
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7573
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7574
_vgextend()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7575
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7576
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7577
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7578
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7579
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7580
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7581
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7582
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7583
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7584
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7585
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7586
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7587
		-@(L|-size))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7588
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7589
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7590
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7591
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7592
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7593
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7594
		COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -h \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7595
			-? --help -t --test -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7596
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7597
		_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7598
		if [ $args -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7599
			_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7600
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7601
			_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7602
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7603
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7604
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7605
complete -F _vgextend vgextend
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7606
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7607
_vgport()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7608
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7609
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7610
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7611
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7612
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7613
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7614
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7615
		COMPREPLY=( $( compgen -W '-a --all -d --debug -h \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7616
			-? --help -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7617
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7618
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7619
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7620
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7621
complete -F _vgport vgimport vgexport
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7622
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7623
_vgck()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7624
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7625
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7626
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7627
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7628
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7629
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7630
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7631
		COMPREPLY=( $( compgen -W '-d --debug -h \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7632
			-? --help -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7633
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7634
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7635
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7636
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7637
complete -F _vgck vgck
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7638
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7639
_vgconvert()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7640
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7641
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7642
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7643
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7644
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7645
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7646
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7647
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7648
		-@(M|-metadatatype))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7649
			COMPREPLY=( $( compgen -W '1 2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7650
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7651
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7652
		--metadatacopies)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7653
			COMPREPLY=( $( compgen -W '0 1 2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7654
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7655
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7656
		--metadatasize)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7657
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7658
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7659
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7660
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7661
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7662
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7663
		COMPREPLY=( $( compgen -W '-d --debug -h --help --labelsector \ 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7664
			-M --metadatatype --metadatacopies --metadatasize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7665
			-t --test -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7666
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7667
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7668
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7669
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7670
complete -F _vgconvert vgconvert
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7671
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7672
_vgcfgbackup()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7673
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7674
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7675
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7676
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7677
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7678
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7679
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7680
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7681
		-@(f|-file))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7682
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7683
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7684
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7685
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7686
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7687
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7688
		COMPREPLY=( $( compgen -W '-d --debug -f --file -h --help \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7689
			--ignorelockingfailure -P --partial -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7690
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7691
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7692
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7693
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7694
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7695
complete -F _vgcfgbackup vgcfgbackup
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7696
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7697
_vgcfgrestore()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7698
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7699
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7700
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7701
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7702
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7703
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7704
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7705
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7706
		-@(f|-file))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7707
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7708
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7709
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7710
		-@(M|-metadatatype))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7711
			COMPREPLY=( $( compgen -W '1 2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7712
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7713
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7714
		-@(n|-name))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7715
			_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7716
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7717
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7718
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7719
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7720
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7721
		COMPREPLY=( $( compgen -W '-d --debug -f --file -l --list \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7722
			-h --help -M --Metadatatype -n --name -t --test \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7723
			-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7724
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7725
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7726
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7727
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7728
complete -F _vgcfgrestore vgcfgrestore
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7729
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7730
_vgmerge()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7731
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7732
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7733
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7734
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7735
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7736
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7737
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7738
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7739
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7740
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7741
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7742
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7743
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7744
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7745
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7746
		COMPREPLY=( $( compgen -W '-A --autobackup -d --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7747
			-h --help -l --list -t --test -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7748
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7749
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7750
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7751
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7752
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7753
complete -F _vgmerge vgmerge
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7754
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7755
_vgsplit()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7756
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7757
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7758
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7759
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7760
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7761
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7762
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7763
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7764
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7765
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7766
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7767
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7768
		-@(M|-metadatatype))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7769
			COMPREPLY=( $( compgen -W '1 2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7770
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7771
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7772
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7773
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7774
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7775
		COMPREPLY=( $( compgen -W '-A --autobackup -d --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7776
			-h --help -l --list -M --metadatatype -t --test \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7777
			-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7778
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7779
		_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7780
		if [ $args -eq 0 -o $args -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7781
			_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7782
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7783
			_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7784
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7785
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7786
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7787
complete -F _vgsplit vgsplit
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7788
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7789
_vgmknodes()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7790
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7791
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7792
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7793
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7794
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7795
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7796
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7797
		COMPREPLY=( $( compgen -W '-d --debug -h --help -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7798
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7799
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7800
		_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7801
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7802
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7803
complete -F _vgmknodes vgmknodes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7804
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7805
_lvscan()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7806
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7807
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7808
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7809
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7810
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7811
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7812
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7813
		COMPREPLY=( $( compgen -W '-b --blockdevice -d --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7814
			-h -? --help --ignorelockingfailure -P \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7815
			--partial -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7816
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7817
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7818
complete -F _lvscan lvscan
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7819
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7820
_lvs()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7821
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7822
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7823
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7824
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7825
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7826
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7827
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7828
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7829
		-@(o|O|-options|-sort))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7830
			COMPREPLY=( $( compgen -W 'lv_uuid lv_name \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7831
				lv_attr lv_minor lv_size seg_count \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7832
				origin snap_percent segtype stripes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7833
				stripesize chunksize seg_start \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7834
				seg_size' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7835
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7836
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7837
		--units)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7838
			_units
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7839
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7840
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7841
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7842
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7843
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7844
		COMPREPLY=( $( compgen -W '--aligned -d --debug \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7845
			-h --help --ignorelockingfailure --noheadings \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7846
			--nosuffix -o --options -O --sort -P --partial \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7847
			--segments --separator --unbuffered --units \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7848
			-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7849
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7850
		_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7851
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7852
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7853
complete -F _lvs lvs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7854
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7855
_lvdisplay()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7856
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7857
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7858
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7859
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7860
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7861
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7862
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7863
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7864
		--units)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7865
			_units
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7866
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7867
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7868
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7869
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7870
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7871
		COMPREPLY=( $( compgen -W '-c --colon -C --columns --units \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7872
			-P --partial -m --maps -v --verbose -d --debug -h \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7873
			--help --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7874
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7875
		_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7876
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7877
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7878
complete -F _lvdisplay lvdisplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7879
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7880
_lvchange()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7881
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7882
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7883
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7884
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7885
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7886
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7887
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7888
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7889
		-@(a|A|C|M|-available|-autobackup|-continguous|-persistent))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7890
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7891
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7892
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7893
		-@(p|-permission))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7894
			COMPREPLY=( $( compgen -W 'r rw' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7895
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7896
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7897
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7898
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7899
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7900
		COMPREPLY=( $( compgen -W '-A --autobackup -a --available \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7901
			--addtag --alloc -C --contiguous -d --debug --deltag \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7902
			-f --force -h --help --ignorelockingfailure -M \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7903
			--persistent --major major --minor minor -P --partial \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7904
			-p --permission -r --readahead --refresh -t --test \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7905
			-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7906
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7907
		_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7908
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7909
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7910
complete -F _lvchange lvchange
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7911
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7912
_lvcreate()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7913
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7914
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7915
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7916
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7917
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7918
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7919
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7920
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7921
		-@(A|C|M|Z|-autobackup|-continguous|-persistent|-zero))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7922
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7923
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7924
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7925
		-@(L|-size))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7926
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7927
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7928
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7929
		-@(p|-permission))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7930
			COMPREPLY=( $( compgen -W 'r rw' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7931
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7932
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7933
		-@(n|-name))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7934
			_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7935
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7936
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7937
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7938
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7939
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7940
		COMPREPLY=( $( compgen -W '-A --autobackup --addtag --alloc \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7941
			-C --contiguous -d --debug -h -? --help -i --stripes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7942
			-I --stripesize -l --extents -L --size -M --persistent \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7943
			--major --minor -n --name -p --permission -r \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7944
			--readahead -t --test --type -v --verbose -Z --zero \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7945
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7946
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7947
		_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7948
		if [ $args -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7949
			_volumegroups
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7950
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7951
			_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7952
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7953
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7954
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7955
complete -F _lvcreate lvcreate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7956
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7957
_lvremove()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7958
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7959
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7960
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7961
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7962
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7963
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7964
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7965
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7966
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7967
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7968
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7969
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7970
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7971
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7972
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7973
		COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -f \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7974
			--force -h -?  --help -t --test -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7975
			--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7976
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7977
		_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7978
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7979
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7980
complete -F _lvremove lvremove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7981
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7982
_lvrename()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7983
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7984
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7985
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7986
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7987
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7988
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7989
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7990
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7991
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7992
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7993
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7994
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7995
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7996
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7997
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7998
		COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -h \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  7999
			-? --help -t --test -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8000
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8001
		_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8002
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8003
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8004
complete -F _lvrename lvrename
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8005
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8006
_lvreduce()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8007
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8008
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8009
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8010
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8011
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8012
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8013
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8014
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8015
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8016
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8017
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8018
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8019
		-@(L|-size))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8020
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8021
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8022
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8023
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8024
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8025
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8026
		COMPREPLY=( $( compgen -W '-A --autobackup -d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8027
			--debug -f --force -h --help -l --extents \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8028
			-L --size -n --nofsck -r --resizefs -t --test \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8029
			-v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8030
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8031
		_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8032
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8033
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8034
complete -F _lvreduce lvreduce
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8035
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8036
_lvresize()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8037
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8038
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8039
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8040
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8041
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8042
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8043
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8044
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8045
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8046
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8047
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8048
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8049
		-@(L|-size))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8050
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8051
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8052
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8053
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8054
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8055
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8056
		COMPREPLY=( $( compgen -W '-A --autobackup --alloc -d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8057
			--debug -h --help -i --stripes -I --stripesize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8058
			-l --extents -L --size -n --nofsck -r --resizefs \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8059
			-t --test --type -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8060
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8061
		_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8062
		if [ $args -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8063
			_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8064
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8065
			_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8066
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8067
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8068
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8069
complete -F _lvresize lvresize
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8070
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8071
_lvextend()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8072
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8073
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8074
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8075
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8076
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8077
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8078
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8079
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8080
		-@(A|-autobackup))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8081
			COMPREPLY=( $( compgen -W 'y n' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8082
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8083
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8084
		-@(L|-size))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8085
			_sizes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8086
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8087
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8088
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8089
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8090
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8091
		COMPREPLY=( $( compgen -W '-A --autobackup --alloc -d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8092
			--debug -h --help -i --stripes -I --stripesize \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8093
			-l --extents -L --size -n --nofsck -r --resizefs \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8094
			-t --test --type -v --verbose --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8095
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8096
		_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8097
		if [ $args -eq 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8098
			_logicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8099
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8100
			_physicalvolumes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8101
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8102
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8103
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8104
complete -F _lvextend lvextend
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8105
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8106
_lvm()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8107
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8108
	local prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8109
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8110
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8111
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8112
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8113
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8114
		COMPREPLY=( $( compgen -W 'dumpconfig help lvchange \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8115
			lvcreate lvdisplay lvextend lvmchange \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8116
			lvmdiskscan lvmsadc lvmsar lvreduce \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8117
			lvremove lvrename lvresize lvs lvscan \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8118
			pvchange pvcreate pvdata pvdisplay pvmove \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8119
			pvremove pvresize pvs pvscan vgcfgbackup \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8120
			vgcfgrestore vgchange vgck vgconvert \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8121
			vgcreate vgdisplay vgexport vgextend \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8122
			vgimport vgmerge vgmknodes vgreduce \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8123
			vgremove vgrename vgs vgscan vgsplit \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8124
			version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8125
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8126
		case ${COMP_WORDS[1]} in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8127
			pvchange)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8128
				_pvchange
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8129
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8130
			pvcreate)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8131
				_pvcreate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8132
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8133
			pvdisplay)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8134
				_pvdisplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8135
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8136
			pvmove)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8137
				_pvmove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8138
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8139
			pvremove)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8140
				_pvremove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8141
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8142
			pvresize)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8143
				_pvresize
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8144
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8145
			pvs)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8146
				_pvs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8147
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8148
			pvscan)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8149
				_pvscan
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8150
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8151
			vgcfgbackup)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8152
				_vgcfgbackup
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8153
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8154
			vgcfgrestore)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8155
				_vgcfgrestore
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8156
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8157
			vgchange)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8158
				_vgchange
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8159
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8160
			vgck)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8161
				_vgck
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8162
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8163
			vgconvert)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8164
				_vgconvert
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8165
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8166
			vgcreate)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8167
				_vgcreate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8168
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8169
			vgdisplay)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8170
				_vgdisplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8171
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8172
			vgexport)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8173
				_vgexport
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8174
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8175
			vgextend)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8176
				_vgextend
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8177
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8178
			vgimport)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8179
				_vgimport
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8180
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8181
			vgmerge)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8182
				_vgmerge
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8183
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8184
			vgmknodes)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8185
				_vgmknodes
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8186
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8187
			vgreduce)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8188
				_vgreduce
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8189
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8190
			vgremove)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8191
				_vgremove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8192
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8193
			vgrename)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8194
				_vgrename
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8195
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8196
			vgs)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8197
				_vgs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8198
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8199
			vgscan)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8200
				_vgscan
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8201
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8202
			vgsplit)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8203
				_vgsplit
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8204
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8205
			lvchange)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8206
				_lvchange
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8207
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8208
			lvcreate)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8209
				_lvcreate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8210
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8211
			lvdisplay)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8212
				_lvdisplay
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8213
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8214
			lvextend)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8215
				_lvextend
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8216
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8217
			lvreduce)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8218
				_lvreduce
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8219
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8220
			lvremove)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8221
				_lvremove
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8222
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8223
			lvrename)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8224
				_lvrename
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8225
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8226
			lvresize)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8227
				_lvresize
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8228
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8229
			lvs)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8230
				_lvs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8231
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8232
			lvscan)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8233
				_lvscan
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8234
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8235
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8236
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8237
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8238
complete -F _lvm lvm
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8239
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8240
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8241
# mkinitrd(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8242
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8243
have mkinitrd &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8244
_mkinitrd()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8245
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8246
	local cur args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8247
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8248
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8249
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8250
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8251
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8252
	# --name value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8253
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8254
		--preload)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8255
			_modules
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8256
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8257
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8258
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8259
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8260
	# --name=value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8261
	if [[ "$cur" == *=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8262
		prev=${cur/=*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8263
		cur=${cur/*=/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8264
		case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8265
			--@(with|builtin))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8266
				_modules
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8267
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8268
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8269
			--@(fstab|dsdt))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8270
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8271
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8272
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8273
			--tmpdir)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8274
				_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8275
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8276
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8277
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8278
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8279
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8280
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8281
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8282
		COMPREPLY=( $( compgen -W '--version -v -f --preload \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8283
			--with= --omit-scsi-modules --omit-raid-modules \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8284
			--images-version --fstab= --nocompress --builtin= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8285
			--nopivot --noudev --allow-missing --tmpdir= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8286
			--initrdfs= --dsdt= --lvm-version= --froce-usb' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8287
			-- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8288
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8289
		_count_args
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8290
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8291
		case $args in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8292
			1)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8293
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8294
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8295
			2)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8296
				COMPREPLY=( $( command ls /lib/modules | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8297
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8298
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8299
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8300
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8301
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8302
complete -F _mkinitrd mkinitrd
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8303
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8304
# pkgconfig(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8305
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8306
have pkg-config &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8307
_pkg_config()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8308
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8309
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8310
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8311
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8312
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8313
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8314
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8315
		# return list of available options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8316
		COMPREPLY=( $( compgen -W '-version --modversion \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8317
		      --atleast-pkgconfig-version= --libs --libs-only-l \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8318
		      --libs-only-other --libs-only-L --cflags \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8319
		      --cflags-only-I --cflags-only-other --variable= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8320
		      --define-variable= --exists --uninstalled \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8321
		      --atleast-version= --exact-version= --max-version= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8322
		      --list-all --debug --print-errors --silence-errors \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8323
		      --errors-to-stdout -? --help --usage' -- $cur))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8324
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8325
		COMPREPLY=( $( pkg-config --list-all 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8326
				    awk '{print $1}' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8327
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8328
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8329
complete -F _pkg_config pkg-config
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8330
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8331
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8332
# cpio(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8333
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8334
have cpio && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8335
_cpio_format()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8336
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8337
	COMPREPLY=( $( compgen -W 'bin odc newc crc tar ustar hpbin hpodc' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8338
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8339
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8340
_cpio()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8341
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8342
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8343
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8344
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8345
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8346
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8347
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8348
	# --name value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8349
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8350
		-H)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8351
			_cpio_format
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8352
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8353
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8354
		-@(E|F|I))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8355
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8356
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8357
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8358
		-R)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8359
			_usergroup
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8360
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8361
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8362
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8363
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8364
	# --name=value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8365
	if [[ "$cur" == *=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8366
		prev=${cur/=*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8367
		cur=${cur/*=/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8368
		case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8369
			--format)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8370
				_cpio_format
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8371
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8372
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8373
			--@(file|pattern-file))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8374
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8375
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8376
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8377
			--owner)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8378
				_usergroup
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8379
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8380
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8381
			--rsh-command)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8382
				COMPREPLY=( $( compgen -c -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8383
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8384
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8385
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8386
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8387
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8388
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8389
		COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through' -- $cur) ) 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8390
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8391
		case ${COMP_WORDS[1]} in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8392
			-@(o|-create))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8393
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8394
					COMPREPLY=( $( compgen -W '-0 -a -c -v -A -B\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8395
						-L -V -C -H -M -O -F --file= --format=\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8396
						--message= --null --reset-access-time\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8397
						--verbose --dot --append --block-size=\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8398
						--dereference --io-size= --quiet\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8399
						--force-local --rsh-command= --help\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8400
						--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8401
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8402
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8403
			-@(i|-extract))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8404
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8405
					COMPREPLY=( $( compgen -W '-b -c -d -f -m -n -r\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8406
						-t -s -u -v -B -S -V -C -E -H -M -R -I\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8407
						-F --file= --make-directories\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8408
						--nonmatching\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8409
						--preserve-modification-time\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8410
						--numeric-uid-gid --rename -t --list\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8411
						--swap-bytes --swap --dot\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8412
						--unconditional --verbose --block-size=\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8413
						--swap-halfwords --io-size=\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8414
						--pattern-file= --format= --owner=\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8415
						--no-preserve-owner --message=\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8416
						--force-local --no-absolute-filenames\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8417
						--sparse --only-verify-crc --quiet\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8418
						--rsh-command= --help\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8419
						--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8420
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8421
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8422
			-@(p|-pass-through))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8423
				if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8424
					COMPREPLY=( $( compgen -W '-0 -a -d -l -m -u -v\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8425
						-L -V -R --null --reset-access-time\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8426
						--make-directories --link --quiet\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8427
						--preserve-modification-time\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8428
						--unconditional --verbose --dot\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8429
						--dereference --owner=\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8430
						--no-preserve-owner --sparse --help\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8431
						--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8432
				else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8433
					_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8434
				fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8435
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8436
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8437
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8438
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8439
complete -F _cpio cpio
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8440
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8441
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8442
# id(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8443
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8444
have id &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8445
_id()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8446
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8447
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8448
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8449
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8450
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8451
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8452
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8453
		COMPREPLY=( $( compgen -W '-a -g --group -G --groups -n --name\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8454
			-r --real -u --user --help --version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8455
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8456
		COMPREPLY=( $( compgen -u $cur  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8457
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8458
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8459
complete -F _id id
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8460
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8461
# getent(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8462
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8463
have getent &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8464
_getent()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8465
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8466
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8467
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8468
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8469
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8470
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8471
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8472
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8473
		passwd)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8474
			COMPREPLY=( $( compgen -u $cur  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8475
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8476
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8477
		group)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8478
			COMPREPLY=( $( compgen -g $cur  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8479
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8480
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8481
		services)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8482
			COMPREPLY=( $( compgen -s $cur  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8483
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8484
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8485
		hosts)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8486
			COMPREPLY=( $( compgen -A hostname $cur  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8487
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8488
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8489
		protocols)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8490
			COMPREPLY=( $( getent protocols | awk '{print $1}' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8491
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8492
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8493
		networks)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8494
			COMPREPLY=( $( getent networks | awk '{print $1}' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8495
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8496
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8497
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8498
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8499
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8500
	if [ $COMP_CWORD -eq 1 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8501
		COMPREPLY=( $( compgen -W 'passwd group hosts services protocols networks' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8502
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8503
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8504
complete -F _getent getent
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8505
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8506
# ntpdate(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8507
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8508
have ntpdate &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8509
_ntpdate()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8510
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8511
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8512
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8513
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8514
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8515
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8516
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8517
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8518
		-k)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8519
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8520
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8521
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8522
		-U)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8523
			COMPREPLY=( $( compgen -u $cur  ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8524
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8525
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8526
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8527
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8528
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8529
		COMPREPLY=( $( compgen -W '-4 -6 -b -B -d -Q -q -s -u -v -a\
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8530
			-e -k -p -o -r -t' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8531
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8532
		_known_hosts
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8533
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8534
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8535
complete -F _ntpdate ntpdate
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8536
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8537
# smartctl(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8538
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8539
have smartctl && {
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8540
_smartctl_quietmode()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8541
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8542
	COMPREPLY=( $( compgen -W 'errorsonly silent' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8543
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8544
_smartctl_device()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8545
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8546
	COMPREPLY=( $( compgen -W 'ata scsi 3ware' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8547
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8548
_smartctl_tolerance()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8549
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8550
	COMPREPLY=( $( compgen -W 'warn exit ignore' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8551
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8552
_smartctl_badsum()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8553
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8554
	COMPREPLY=( $( compgen -W 'normal conservative permissive verypermissive' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8555
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8556
_smartctl_report()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8557
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8558
	COMPREPLY=( $( compgen -W 'ioctl ataioctl scsiioctl' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8559
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8560
_smartctl_feature()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8561
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8562
	COMPREPLY=( $( compgen -W 'on off' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8563
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8564
_smartctl_log()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8565
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8566
	COMPREPLY=( $( compgen -W 'error selftest selective directory' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8567
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8568
_smartctl_vendorattribute()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8569
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8570
	COMPREPLY=( $( compgen -W 'help 9,minutes 9,seconds 9,halfminutes \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8571
		9,temp 192,emergencyretractcyclect 193,loadunload \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8572
		194,10xCelsius 194,unknown 198,offlinescanuncsectorct \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8573
		200,writeerrorcount 201,detectedtacount 220,temp' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8574
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8575
_smartctl_firmwarebug()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8576
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8577
	COMPREPLY=( $( compgen -W 'none samsung samsung2' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8578
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8579
_smartctl_presets()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8580
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8581
	COMPREPLY=( $( compgen -W 'use ignore show showall' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8582
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8583
_smartctl_test()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8584
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8585
	COMPREPLY=( $( compgen -W 'offline short long conveyance select afterselect,on afterselect,off pending' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8586
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8587
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8588
_smartctl()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8589
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8590
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8591
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8592
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8593
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8594
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8595
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8596
	# --name value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8597
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8598
		-q)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8599
			_smartctl_quietmode
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8600
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8601
		-d)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8602
			_smartctl_device
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8603
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8604
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8605
		-t)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8606
			_smartctl_tolerance
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8607
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8608
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8609
		-b)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8610
			_smartctl_badsum
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8611
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8612
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8613
		-r)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8614
			_smartctl_report
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8615
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8616
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8617
		-s)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8618
			_smartctl_feature
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8619
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8620
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8621
		-o)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8622
			_smartctl_feature
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8623
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8624
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8625
		-S)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8626
			_smartctl_feature
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8627
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8628
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8629
		-l)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8630
			_smartctl_log
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8631
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8632
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8633
		-v)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8634
			_smartctl_vendorattribute
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8635
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8636
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8637
		-F)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8638
			_smartctl_firmwarebug
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8639
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8640
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8641
		-P)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8642
			_smartctl_presets
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8643
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8644
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8645
		-t)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8646
			_smartctl_test
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8647
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8648
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8649
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8650
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8651
	# --name=value style option
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8652
	if [[ "$cur" == *=* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8653
		prev=${cur/=*/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8654
		cur=${cur/*=/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8655
		case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8656
			--quietmode)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8657
				_smartctl_quietmode
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8658
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8659
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8660
			--device)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8661
				_smartctl_device
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8662
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8663
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8664
			--tolerance)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8665
				_smartctl_tolerance
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8666
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8667
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8668
			--badsum)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8669
				_smartctl_badsum
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8670
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8671
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8672
			--report)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8673
				_smartctl_report
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8674
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8675
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8676
			--smart)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8677
				_smartctl_feature
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8678
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8679
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8680
			--offlineauto)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8681
				_smartctl_feature
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8682
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8683
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8684
			--saveauto)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8685
				_smartctl_feature
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8686
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8687
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8688
			--log)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8689
				_smartctl_log
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8690
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8691
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8692
			--vendorattribute)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8693
				_smartctl_vendorattribute
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8694
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8695
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8696
			--firmwarebug)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8697
				_smartctl_firmwarebug
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8698
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8699
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8700
			--presets)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8701
				_smartctl_presets
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8702
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8703
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8704
			--test)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8705
				_smartctl_test
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8706
				return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8707
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8708
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8709
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8710
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8711
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8712
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8713
		COMPREPLY=( $( compgen -W '-h --help --usage -V --version \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8714
			--copyright --license-i --info -a --all -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8715
			--quietmode= -d --device= -T --tolerance= -b --badsum= \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8716
			-r --report= -s --smart= -o --offlineauto= -S \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8717
			--saveauto= -H --health -c --capabilities -A \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8718
			--attributes -l --log= -v --vendorattribute= -F \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8719
			--firmwarebug= -P --presets= -t --test= -C \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8720
			--captive -X --abort' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8721
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8722
		cur=${cur:=/dev/}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8723
		_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8724
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8725
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8726
complete -F _smartctl smartctl
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8727
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8728
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8729
# vncviewer(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8730
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8731
have vncviewer &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8732
_vncviewer()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8733
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8734
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8735
	local -a config
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8736
    
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8737
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8738
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8739
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8740
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8741
	case "$prev" in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8742
	-via)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8743
	   _known_hosts -a
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8744
	   ;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8745
	*)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8746
	   # ssh into the the server, find and ping the broadcast address, then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8747
	   # sort and show the results.
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8748
	   COMPREPLY=( $( ssh -o 'Batchmode yes' $prev \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8749
			  "ping -bnc 4 255.255.255.255" 2>/dev/null | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8750
			  awk -F ' ' '{print $4}' | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8751
			  sort -n | uniq | egrep '[0-9]+\.[0-9]+\.' 2>/dev/null ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8752
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8753
								   
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8754
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8755
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8756
complete -F _vncviewer vncviewer
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8757
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8758
# sysctl(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8759
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8760
have sysctl &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8761
_sysctl()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8762
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8763
	local cur
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8764
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8765
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8766
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8767
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8768
	COMPREPLY=( $( compgen -W "$(sysctl -N -a 2>/dev/null)" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8769
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8770
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8771
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8772
complete -F _sysctl sysctl
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8773
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8774
# update-rc.d(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8775
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8776
# Copyright (C) 2004 Servilio Afre Puentes <[email protected]>
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8777
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8778
have update-rc.d &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8779
_update_rc_d()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8780
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8781
    local cur prev sysvdir services options valid_options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8782
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8783
    cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8784
    prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8785
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8786
    [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8787
	|| sysvdir=/etc/init.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8788
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8789
    services=( $(echo $sysvdir/!(README*|*.sh|*.dpkg*|*.rpm*)) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8790
    services=( ${services[@]#$sysvdir/} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8791
    options=( -f -n )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8792
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8793
    if [[ $COMP_CWORD -eq 1 || "$prev" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8794
	valid_options=( $( \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8795
	    echo "${COMP_WORDS[@]} ${options[@]}" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8796
	    | tr " " "\n" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8797
	    | sed -ne "/$( echo "${options[@]}" | sed "s/ /\\|/g" )/p" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8798
	    | sort | uniq -u \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8799
	    ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8800
	COMPREPLY=( $( compgen -W '${options[@]} ${services[@]}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8801
	    -X '$( echo ${COMP_WORDS[@]} | tr " " "|" )' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8802
    elif [[ "$prev" == ?($( echo ${services[@]} | tr " " "|" )) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8803
	COMPREPLY=( $( compgen -W 'remove defaults start stop' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8804
    elif [[ "$prev" == defaults && "$cur" == [0-9] ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8805
	COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8806
    elif [[ "$prev" == defaults && "$cur" == [sk]?([0-9]) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8807
	COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8808
    elif [[ "$prev" == defaults && -z "$cur" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8809
	COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 s k )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8810
    elif [[ "$prev" == ?(start|stop) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8811
	if [[ "$cur" == [0-9] || -z "$cur" ]]; then 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8812
	    COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8813
	elif [[ "$cur" == [0-9][0-9] ]]; then 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8814
	    COMPREPLY=( $cur )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8815
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8816
	    COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8817
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8818
    elif [[ "$prev" == ?([0-9][0-9]|[0-6S]) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8819
	if [[ -z "$cur" ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8820
	    if [[ $prev == [0-9][0-9] ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8821
		COMPREPLY=( 0 1 2 3 4 5 6 S )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8822
	    else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8823
		COMPREPLY=( 0 1 2 3 4 5 6 S . )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8824
	    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8825
	elif [[ "$cur" == [0-6S.] ]]; then 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8826
	    COMPREPLY=( $cur )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8827
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8828
	    COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8829
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8830
    elif [[ "$prev" == "." ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8831
	COMPREPLY=( $(compgen -W "start stop" -- $cur) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8832
    else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8833
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8834
    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8835
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8836
    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8837
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8838
complete -F _update_rc_d update-rc.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8839
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8840
# invoke-rc.d(8) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8841
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8842
# Copyright (C) 2004 Servilio Afre Puentes <[email protected]>
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8843
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8844
have invoke-rc.d &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8845
_invoke_rc_d()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8846
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8847
    local cur prev sysvdir services options valid_options
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8848
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8849
    cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8850
    prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8851
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8852
    [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8853
	|| sysvdir=/etc/init.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8854
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8855
    services=( $(echo $sysvdir/!(README*|*.sh|*.dpkg*|*.rpm*)) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8856
    services=( ${services[@]#$sysvdir/} )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8857
    options=( --help --quiet --force --try-anyway --disclose-deny --query --no-fallback )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8858
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8859
    if [[ ($COMP_CWORD -eq 1) || ("$prev" == --* ) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8860
	valid_options=( $( \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8861
	    echo ${COMP_WORDS[@]} ${options[@]} \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8862
	    | tr " " "\n" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8863
	    | sed -ne "/$( echo ${options[@]} | sed "s/ /\\\\|/g" )/p" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8864
	    | sort | uniq -u \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8865
	    ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8866
	COMPREPLY=( $( compgen -W '${valid_options[@]} ${services[@]}' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8867
	    $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8868
    elif [ -x $sysvdir/$prev ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8869
	COMPREPLY=( $( compgen -W '`sed -ne "y/|/ /; \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8870
					    s/^.*Usage:[ ]*[^ ]*[ ]*{*\([^}\"]*\).*$/\1/p" \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8871
					    $sysvdir/$prev`' -- \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8872
	    $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8873
    else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8874
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8875
    fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8876
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8877
    return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8878
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8879
complete -F _invoke_rc_d invoke-rc.d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8880
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8881
# minicom(1) completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8882
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8883
have minicom &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8884
_minicom()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8885
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8886
	local cur prev
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8887
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8888
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8889
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8890
	prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8891
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8892
	case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8893
		-@(a|c))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8894
			COMPREPLY=( $( compgen -W 'on off' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8895
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8896
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8897
		-@(S|C))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8898
			_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8899
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8900
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8901
		-P)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8902
			COMPREPLY=( $( command ls /dev/tty* ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8903
			COMPREPLY=( $( compgen -W '${COMPREPLY[@]} ${COMPREPLY[@]#/dev/}' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8904
			return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8905
			;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8906
	esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8907
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8908
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8909
	if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8910
		COMPREPLY=( $( compgen -W '-s -o -m -M -z -l -L -w -a -t \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8911
			-c -S -d -p -C -T -8' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8912
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8913
		COMPREPLY=( $( command ls /etc/minicom/minirc.* 2>/dev/null | sed -e 's|/etc/minicom/minirc.||' | grep "^$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8914
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8915
} &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8916
complete -F _minicom minicom
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8917
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8918
# svn completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8919
#
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8920
have svn &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8921
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8922
_svn()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8923
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8924
	local cur prev commands options command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8925
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8926
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8927
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8928
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8929
	commands='add blame praise annotate ann cat checkout co cleanup commit \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8930
		ci copy cp delete del remove rm diff di export help ? h import \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8931
		info list ls lock log merge mkdir move mv rename ren \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8932
		propdel pdel pd propedit pedit pe propget pget pg \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8933
		proplist plist pl propset pset ps resolved revert \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8934
		status stat st switch sw unlock update up'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8935
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8936
	if [[ $COMP_CWORD -eq 1 ]] ; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8937
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8938
			COMPREPLY=( $( compgen -W '--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8939
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8940
			COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8941
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8942
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8943
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8944
		prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8945
		case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8946
			--config-dir)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8947
				_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8948
				return 0;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8949
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8950
			-@(F|-file|-targets))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8951
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8952
				return 0;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8953
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8954
			--encoding)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8955
				COMPREPLY=( $( compgen -W \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8956
					'$( iconv --list | sed -e "s@//@@;" )' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8957
					-- "$cur" ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8958
				return 0;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8959
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8960
			--@(editor|diff|diff3)-cmd)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8961
				COMP_WORDS=(COMP_WORDS[0] $cur)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8962
				COMP_CWORD=1
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8963
				_command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8964
				return 0;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8965
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8966
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8967
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8968
		command=${COMP_WORDS[1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8969
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8970
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8971
			# possible options for the command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8972
			case $command in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8973
				add)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8974
					options='--auto-props --no-auto-props \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8975
						--force --targets --no-ignore \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8976
						--non-recursive -N -q --quiet'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8977
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8978
				@(blame|annotate|ann|praise))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8979
					options='-r --revisions --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8980
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8981
						--non-interactive -v \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8982
						--verbose --incremental --xml'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8983
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8984
				cat)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8985
					options='-r --revision --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8986
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8987
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8988
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8989
				@(checkout|co))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8990
					options='-r --revision -q --quiet -N \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8991
						--non-recursive --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8992
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8993
						--non-interactive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8994
						--ignore-externals'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8995
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8996
				cleanup)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8997
					options='--diff3-cmd'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8998
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  8999
				@(commit|ci))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9000
					options='-m --message -F --file \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9001
						--encoding --force-log -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9002
						--quiet --non-recursive -N \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9003
						--targets --editor-cmd \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9004
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9005
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9006
						--non-interactive --no-unlock'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9007
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9008
				@(copy|cp))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9009
					options='-m --message -F --file \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9010
						--encoding --force-log -r \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9011
						--revision -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9012
						--editor-cmd -username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9013
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9014
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9015
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9016
				@(delete|del|remove|rm))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9017
					options='--force -m --message -F \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9018
						--file --encoding --force-log \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9019
						-q --quiet --targets \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9020
						--editor-cmd -username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9021
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9022
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9023
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9024
				@(diff|di))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9025
					options='-r --revision -x --extensions \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9026
						--diff-cmd --no-diff-deleted \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9027
						-N --non-recursive --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9028
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9029
						--non-interactive --force \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9030
						--old --new --notice-ancestry'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9031
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9032
				export)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9033
					options='-r --revision -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9034
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9035
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9036
						--non-interactive -N \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9037
						--non-recursive --force \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9038
						--native-eol --ignore-externals'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9039
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9040
				import)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9041
					options='--auto-props --no-auto-props \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9042
						-m --message -F --file \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9043
						--encoding --force-log -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9044
						--quiet --non-recursive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9045
						--no-ignore --editor-cmd \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9046
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9047
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9048
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9049
					;; 
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9050
				info)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9051
					options='--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9052
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9053
						--non-interactive -r \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9054
						--revision --xml --targets \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9055
						-R --recursive --incremental'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9056
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9057
				@(list|ls))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9058
					options='-r --revision -v --verbose -R \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9059
						--recursive --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9060
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9061
						--non-interactive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9062
						--incremental --xml'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9063
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9064
				lock)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9065
					options='-m --message -F --file \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9066
						--encoding --force-log \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9067
						--targets --force --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9068
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9069
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9070
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9071
				log)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9072
					options='-r --revision -v --verbose \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9073
						--targets --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9074
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9075
						--non-interactive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9076
						--stop-on-copy --incremental \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9077
						--xml -q --quiet --limit'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9078
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9079
				merge)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9080
					options='-r --revision -N \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9081
						--non-recursive -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9082
						--force --dry-run --diff3-cmd \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9083
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9084
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9085
						--non-interactive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9086
						--ignore-ancestry'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9087
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9088
				mkdir)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9089
					options='-m --message -F --file \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9090
						--encoding --force-log -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9091
						--quiet --editor-cmd \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9092
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9093
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9094
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9095
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9096
				@(move|mv|rename|ren))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9097
					options='-m --message -F --file \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9098
						--encoding --force-log -r \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9099
						--revision -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9100
						--force --editor-cmd \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9101
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9102
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9103
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9104
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9105
				@(propdel|pdel|pd))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9106
					options='-q --quiet -R --recursive -r \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9107
						--revision --revprop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9108
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9109
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9110
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9111
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9112
				@(propedit|pedit|pe))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9113
					options='-r --revision --revprop \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9114
						--encoding --editor-cmd \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9115
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9116
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9117
						--non-interactive --force'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9118
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9119
				@(propget|pget|pg))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9120
					options='-R --recursive -r --revision \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9121
						--revprop --strict --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9122
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9123
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9124
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9125
				@(proplist|plist|pl))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9126
					options='-v --verbose -R --recursive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9127
						-r --revision --revprop -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9128
						--quiet --username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9129
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9130
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9131
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9132
				@(propset|pset|ps))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9133
					options='-F --file -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9134
						--targets -R --recursive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9135
						--revprop --encoding \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9136
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9137
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9138
						--non-interactive -r \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9139
						--revision --force'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9140
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9141
				resolved)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9142
					options='--targets -R --recursive -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9143
						--quiet'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9144
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9145
				revert)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9146
					options='--targets -R --recursive -q \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9147
						--quiet'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9148
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9149
				@(status|stat|st))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9150
					options='-u --show-updates -v \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9151
						--verbose -N --non-recursive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9152
						-q --quiet --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9153
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9154
						--non-interactive --no-ignore \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9155
						--ignore-externals \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9156
						--incremental --xml'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9157
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9158
				@(switch|sw))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9159
					options='--relocate -r --revision -N \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9160
						--non-recursive -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9161
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9162
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9163
						--non-interactive --diff3-cmd'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9164
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9165
				unlock)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9166
					options='--targets --force --username \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9167
						--password --no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9168
						--non-interactive'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9169
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9170
				@(update|up))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9171
					options='-r --revision -N \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9172
						--non-recursive -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9173
						--username --password \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9174
						--no-auth-cache \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9175
						--non-interactive \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9176
						--diff3-cmd --ignore-externals'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9177
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9178
			esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9179
			options="$options --help -h --config-dir"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9180
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9181
			COMPREPLY=( $( compgen -W "$options" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9182
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9183
			if [[ "$command" == @(help|h|\?) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9184
				COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9185
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9186
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9187
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9188
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9189
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9190
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9191
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9192
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9193
complete -F _svn $default svn
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9194
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9195
_svnadmin()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9196
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9197
	local cur prev commands options mode
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9198
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9199
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9200
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9201
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9202
	commands='create deltify dump help ? hotcopy list-dblogs \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9203
		list-unused-dblogs load lslocks lstxns recover rmlocks \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9204
		rmtxns setlog verify'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9205
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9206
	if [[ $COMP_CWORD -eq 1 ]] ; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9207
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9208
			COMPREPLY=( $( compgen -W '--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9209
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9210
			COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9211
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9212
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9213
		prev=${COMP_WORDS[COMP_CWORD-1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9214
		case $prev in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9215
			--config-dir)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9216
				_filedir -d
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9217
				return 0;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9218
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9219
			--fs-type)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9220
				COMPREPLY=( $( compgen -W 'fsfs bdb' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9221
				return 0;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9222
				;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9223
		esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9224
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9225
		command=${COMP_WORDS[1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9226
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9227
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9228
			# possible options for the command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9229
			case $command in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9230
				create)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9231
					options='--bdb-txn-nosync \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9232
						--bdb-log-keep --config-dir \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9233
						--fs-type'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9234
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9235
				deltify)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9236
					options='-r --revision -q --quiet'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9237
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9238
				dump)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9239
					options='-r --revision --incremental \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9240
						-q --quiet --deltas'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9241
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9242
				hotcopy)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9243
					options='--clean-logs'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9244
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9245
				load)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9246
					options='--ignore-uuid --force-uuid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9247
						--parent-dir -q --quiet \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9248
						--use-pre-commit-hook \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9249
						--use-post-commit-hook'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9250
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9251
				rmtxns)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9252
					options='-q --quiet'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9253
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9254
				setlog)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9255
					options='-r --revision --bypass-hooks'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9256
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9257
			esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9258
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9259
			options="$options --help -h"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9260
			COMPREPLY=( $( compgen -W "$options" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9261
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9262
			if [[ "$command" == @(help|h|\?) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9263
				COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9264
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9265
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9266
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9267
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9268
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9269
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9270
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9271
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9272
complete -F _svnadmin $default svnadmin
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9273
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9274
_svnlook()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9275
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9276
	local cur prev commands options mode
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9277
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9278
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9279
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9280
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9281
	commands='author cat changed date diff dirs-changed help ? h history \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9282
		info lock log propget pget pg proplist plist pl tree uuid \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9283
		youngest'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9284
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9285
	if [[ $COMP_CWORD -eq 1 ]] ; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9286
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9287
			COMPREPLY=( $( compgen -W '--version' -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9288
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9289
			COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9290
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9291
	else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9292
		command=${COMP_WORDS[1]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9293
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9294
		if [[ "$cur" == -* ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9295
			# possible options for the command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9296
			case $command in
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9297
				@(author|cat|date|dirs-changed|info|log))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9298
					options='-r --revision -t \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9299
						--transaction'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9300
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9301
				changed)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9302
					options='-r --revision -t \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9303
						--transaction --copy-info'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9304
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9305
				diff)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9306
					options='-r --revision -t \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9307
						--transaction \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9308
						--no-diff-deleted \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9309
						--no-diff-added \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9310
						--diff-copy-from'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9311
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9312
				history)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9313
					options='-r --revision --show-ids'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9314
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9315
				prop@(get|list))
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9316
					options='-r --revision -t \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9317
						--transaction --revprop'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9318
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9319
				tree)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9320
					options='-r --revision -t \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9321
						--transaction --show-ids \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9322
						--full-paths'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9323
					;;
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9324
			esac
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9325
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9326
			options="$options --help -h"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9327
			COMPREPLY=( $( compgen -W "$options" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9328
		else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9329
			if [[ "$command" == @(help|h|\?) ]]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9330
				COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9331
			else
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9332
				_filedir
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9333
			fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9334
		fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9335
	fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9336
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9337
	return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9338
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9339
complete -F _svnlook $default svnlook
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9340
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9341
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9342
_filedir_xspec()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9343
{
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9344
	local IFS cur xspec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9345
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9346
	IFS=$'\t\n'
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9347
	COMPREPLY=()
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9348
	cur=`_get_cword`
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9349
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9350
	_expand || return 0
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9351
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9352
	# get first exclusion compspec that matches this command
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9353
	xspec=$( sed -ne $'/^complete .*[ \t]'${1##*/}$'\([ \t]\|$\)/{p;q;}' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9354
		  $BASH_COMPLETION )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9355
	# prune to leave nothing but the -X spec
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9356
	xspec=${xspec#*-X }
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9357
	xspec=${xspec%% *}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9358
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9359
	local toks=( ) tmp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9360
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9361
	while read -r tmp; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9362
		[[ -n $tmp ]] && toks[${#toks[@]}]=$tmp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9363
	done < <( compgen -d -- "$(quote_readline "$cur")" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9364
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9365
	while read -r tmp; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9366
		[[ -n $tmp ]] && toks[${#toks[@]}]=$tmp
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9367
	done < <( eval compgen -f -X $xspec -- "\$(quote_readline "\$cur")" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9368
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9369
	COMPREPLY=( "${toks[@]}" )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9370
}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9371
list=( $( sed -ne '/^# START exclude/,/^# FINISH exclude/p' \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9372
	  $BASH_COMPLETION | \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9373
	# read exclusion compspecs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9374
	(
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9375
	while read line
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9376
	do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9377
		# ignore compspecs that are commented out
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9378
		if [ "${line#\#}" != "$line" ]; then continue; fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9379
		line=${line%# START exclude*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9380
		line=${line%# FINISH exclude*}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9381
		line=${line##*\'}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9382
		list=( "${list[@]}" $line )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9383
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9384
	echo "${list[@]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9385
	)
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9386
     ) )
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9387
# remove previous compspecs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9388
if [ ${#list[@]} -gt 0 ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9389
    eval complete -r ${list[@]}
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9390
    # install new compspecs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9391
    eval complete -F _filedir_xspec $filenames "${list[@]}"
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9392
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9393
unset list
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9394
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9395
# source completion directory definitions
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9396
if [ -d $BASH_COMPLETION_DIR -a -r $BASH_COMPLETION_DIR -a \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9397
     -x $BASH_COMPLETION_DIR ]; then
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9398
	for i in $BASH_COMPLETION_DIR/*; do
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9399
		[[ ${i##*/} != @(*~|*.bak|*.swp|\#*\#|*.dpkg*|.rpm*) ]] &&
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9400
			[ \( -f $i -o -h $i \) -a -r $i ] && . $i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9401
	done
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9402
fi
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9403
unset i
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9404
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9405
# source user completion file
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9406
[ $BASH_COMPLETION != ~/.bash_completion -a -r ~/.bash_completion ] \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9407
	&& . ~/.bash_completion
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9408
unset -f have
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9409
unset UNAME RELEASE default dirnames filenames have nospace bashdefault \
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9410
      plusdirs
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9411
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9412
set $BASH_COMPLETION_ORIGINAL_V_VALUE
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9413
unset BASH_COMPLETION_ORIGINAL_V_VALUE
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9414
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9415
###  Local Variables:
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9416
###  mode: shell-script
77641682ba6f 7015638 bash needs to move to userland
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
  9417
###  End: