#!/bin/sh # xlocate [-u | PATTERN] - locate files in all XBPS packages : ${XLOCATE_DB:=~/.cache/xlocate.db} xupdatedb() { echo "xlocate: reindexing database..." 1>&2 xbps-query -Ro '*' | sed 's/ *([^)]*)$//; s|: ||;' | /usr/libexec/frcode >"$XLOCATE_DB" } if [ "$1" = -u ]; then xupdatedb exit $? fi if [ -e "$XLOCATE_DB" ]; then if find /var/db/xbps/ -name '*repodata' -newer "$XLOCATE_DB" | grep -q .; then echo "xlocate: database outdated, please run xlocate -u." 1>&2 fi rx= case "$1" in # Just . is unlikely to be a regex here... *[*+\\\[\]]*) rx=-r;; esac # XXX also matches template in package name. locate $rx -d "$XLOCATE_DB" "$1" | sed 's|^\([^/]*\)-[^-/]*/|\1\t/|' else xbps-query --regex -Ro "$@" | sed 's/ *([^)]*)$//; s/^\([^ ]*\)-[^-]*: /\1\t/' fi