summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xsogrep98
2 files changed, 1 insertions, 98 deletions
diff --git a/.gitignore b/.gitignore
index b63587b..6a1d1e4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,4 +15,5 @@ zsh_completion
find-libdeps
crossrepomove
arch-nspawn
+sogrep
doc/*.1
diff --git a/sogrep b/sogrep
deleted file mode 100755
index 3be2672..0000000
--- a/sogrep
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/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