summaryrefslogtreecommitdiff
path: root/search_repo
blob: 0f4f42cb2798170057970249468a2d6a4e047a36 (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
#!/bin/sh

#
# Search a set of repos for specific words and return a list of URLS
# to the matching repos
#

if [ $# -lt 2 ]; then
	printf "Usage: %s <dir> <word> [<word>...]\n" $0
	exit 1
fi

FOLDER="$1"
shift
WORDS="$@"

query=$(echo "$WORDS" | sed -E 's/\ /\|/g')
echo "$query"

cd "$FOLDER"

repos=$(find ./ -type d | grep -E "\/.*\/" | grep -Ei "$query" | \
	sed -E 's/.\/([a-z]+)\//\1:\/\//1')

res=$(grep -Eric "$query" | grep -v ":0$" | sort -t ':' -rnk2 | \
	sed -E 's/([a-z]+)\//\1:\/\//1;s/\/[^\/]*$//' )

echo "$repos" | grep -Ei "^[a-z]+://"
echo "--" >&2
echo "$res" | grep -Ei "^[a-z]+://"