sogrep: rename to sogrep.in so make clean works
make clean removes all .in converted files to a file without .in which in the make clean step is removed. So running make clean will remove sogrep since it's specified as BINPROGS. In the future this steps should be removed for sogrep since it is a standalone script. Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
This commit is contained in:
parent
23f248ccfb
commit
90bb423304
|
@ -0,0 +1,98 @@
|
|||
#!/bin/bash
|
||||
# License: Unspecified
|
||||
|
||||
: ${SOLINKS_MIRROR:="https://mirror.pkgbuild.com"}
|
||||
: ${SOCACHE_DIR:="${XDG_CACHE_HOME:-${HOME}/.cache}/sogrep"}
|
||||
repos=('staging' 'testing' 'core' 'extra'
|
||||
'community-staging' 'community-testing' 'community'
|
||||
'multilib-staging' 'multilib-testing' 'multilib'
|
||||
'gnome-unstable' 'kde-unstable')
|
||||
arches=('x86_64')
|
||||
|
||||
source /usr/share/makepkg/util/util.sh
|
||||
|
||||
recache() {
|
||||
local repo arch
|
||||
|
||||
for repo in "${repos[@]}"; do
|
||||
for arch in "${arches[@]}"; do
|
||||
rm -rf "${SOCACHE_DIR}/${arch}/${repo}"
|
||||
mkdir -p "${SOCACHE_DIR}/${arch}/${repo}"
|
||||
curl "${SOLINKS_MIRROR}/${repo}/os/${arch}/${repo}.links.tar.gz" | bsdtar -xf - -C "${SOCACHE_DIR}/${arch}/${repo}"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
search() {
|
||||
local repo=$1 arch lib=$2
|
||||
|
||||
if [[ $repo != all ]]; then
|
||||
if ! in_array "$repo" "${repos[@]}"; then
|
||||
echo "${BASH_SOURCE[0]##*/}: unrecognized repo '$repo'"
|
||||
echo "Try '${BASH_SOURCE[0]##*/} --help' for more information."
|
||||
exit 1
|
||||
fi
|
||||
local repos=("${repo}")
|
||||
fi
|
||||
|
||||
if [[ ! -d ${SOCACHE_DIR} ]]; then
|
||||
recache
|
||||
fi
|
||||
|
||||
for arch in "${arches[@]}"; do
|
||||
for repo in "${repos[@]}"; do
|
||||
db=${SOCACHE_DIR}/${arch}/${repo}/
|
||||
if [[ -d ${db} ]]; then
|
||||
while read -rd '' pkg; do
|
||||
pkg=${pkg#${db}}
|
||||
printf '%s/%s\n' "${repo}" "${pkg%-*-*/links}"
|
||||
done < <(grep -rlZ "${lib}" "${db}")
|
||||
fi
|
||||
done
|
||||
done | sort -u
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat <<- _EOF_
|
||||
Usage: ${BASH_SOURCE[0]##*/} [OPTIONS] REPO LIBNAME
|
||||
|
||||
Check the soname links database for pacman repositories containing
|
||||
packages linked to a given shared library. If the repository specified
|
||||
is "all", then all repositories will be searched, otherwise only the
|
||||
named repository will be searched.
|
||||
|
||||
If the links database does not exist, it will be downloaded first.
|
||||
|
||||
OPTIONS
|
||||
-r, --refresh Refresh the links databases
|
||||
-h, --help Show this help text
|
||||
_EOF_
|
||||
}
|
||||
|
||||
if (( $# == 0 )); then
|
||||
echo "error: No arguments passed."
|
||||
echo "Try '${BASH_SOURCE[0]##*/} --help' for more information."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while (( $# )); do
|
||||
case $1 in
|
||||
-r|--refresh)
|
||||
recache
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
if (( $# < 2 )); then
|
||||
echo "error: Not enough arguments passed."
|
||||
echo "Try '${BASH_SOURCE[0]##*/} --help' for more information."
|
||||
exit 1
|
||||
fi
|
||||
search "$@"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
Loading…
Reference in New Issue