#!/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 [...]\n" $0 exit 1 fi FOLDER="$1" shift WORDS="$@" query=$(echo "$WORDS" | sed -E 's/\ /\|/g') cd "$FOLDER" reponames=$(find ./ -type d | grep -E "\/.*\/" | grep -Ei "$query" | \ sed -E 's/.\/([a-z]+)\//\1:\/\//1') descrfiles=$(find ./ -type f -name 'DESCR' | tr '\n' ' ') repodescr=$(grep -Eic "$query" ${descrfiles} | grep -v ":0$" | sort -t ':' -rnk2 | \ sed -E 's/^\.\///;s/([a-z]+)\//\1:\/\//1;s/\/[^\/]*$//' ) readmefiles=$(find ./ -type f -iname 'readme*' | tr '\n' ' ') readmes=$(grep -Eic "$query" ${readmefiles} | grep -v ":0$" | sort -t ':' -rnk2 | \ sed -E 's/^\.\///;s/([a-z]+)\//\1:\/\//1;s/\/[^\/]*$//' ) echo "--URL" >&2 echo "$reponames" | grep -Ei "^[a-z]+://" echo "--DESCR" >&2 echo "$repodescr" | grep -Ei "^[a-z]+://" echo "--README" >&2 echo "$readmes" | grep -Ei "^[a-z]+://"