index : devtools32 | |
Archlinux32 fork of devtools | gitolite user |
summaryrefslogtreecommitdiff |
author | Jelle van der Waa <jelle@archlinux.org> | 2019-03-17 14:51:19 +0100 |
---|---|---|
committer | Jelle van der Waa <jelle@archlinux.org> | 2019-03-17 14:51:19 +0100 |
commit | 6645701cb13a4801c870c8231d3cdc9988ce593c (patch) | |
tree | 5ff8ed44449fa3f617fa578a94571e5e34261fff | |
parent | 657497c91a67a29e990bed9911c77550d562aac0 (diff) |
-rw-r--r-- | .gitignore | 1 | ||||
-rwxr-xr-x | sogrep | 98 |
@@ -15,4 +15,5 @@ zsh_completion find-libdeps crossrepomove arch-nspawn +sogrep doc/*.1 @@ -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 |