summaryrefslogtreecommitdiff
blob: 548a51dc353a03513bec607c419f74f77be06811 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  Needs a little more thought, or some method which would allow for an upstream
push without affecting the non-Gentoo users.

Index: surfraw-2.1.5/surfraw-bash-completion.IN
===================================================================
--- surfraw-2.1.5/surfraw-bash-completion.IN	{cset 8f95d483-869f-47ba-aba2-f0a12bb9dd07}
+++ surfraw-2.1.5/surfraw-bash-completion.IN	{local clone}
@@ -1,4 +1,25 @@
 # -*- sh -*- bash programmable completion for Surfraw, v2.2
+
+# This is for people who wish to use surfraw completion, without
+# installing the bash-completion package.
+shopt -s extglob
+
+_srpkgname()
+{
+	local pd
+	local dir=$(sed -n -e '/^PORTDIR=/ { s/^[^=]\+="\?\([^"]\+\|\S\+\).*/\1/p ; q }' \
+		/etc/make.{conf,globals})/*
+	local cur="$1"
+
+	COMPREPLY=($(compgen -W "$(
+	    for pd in $dir
+		do
+			[ ! -d ${pd} ] && continue
+			builtin cd ${pd}
+			echo *
+		done)" -- ${cur})
+	)
+}
 _surfraw() 
 {       COMPREPLY=()
 	local cur=${COMP_WORDS[COMP_CWORD]}
@@ -14,7 +35,7 @@ _surfraw()
 	then    COMPREPLY=( $( compgen -W "$elvi" -- $cur ) )
 		# "sr go<tab>" for google
 	elif    [[ $prev == @(alioth|deb@(bugs|contents|packages|pts|sec)|freshmeat|fsfdir|sourceforge) ]]
-	then    COMPREPLY=( $(apt-cache --generate pkgnames $cur) )
+	then    _srpkgname ${cur}
 		# "sr debbugs 4<tab>" to check 44bsd-rdist bugs...
 	elif    [[ -x /usr/bin/look ]] # in bsdmainutils, "important"
 	then	COMPREPLY=( $(/usr/bin/look ${cur:-''}) )