#!/bin/sh -e # Check which package owns a file # Follow symlinks to any paths. case $1 in /*) cd -P "${KISS_ROOT:-/}${1%/*}" [ "$PWD" = / ] && KISS_ROOT= ;; */*) cd -P "${1%/*}" ;; *) cd -P . ;; esac [ -f "$PWD/${1##*/}" ] || { printf 'usage: kiss-owns [/path/to/file]\n' >&2 exit 1 } # Print the full path to the manifest file which contains # the match to our search. pkg_owns=$(grep -lFx \ "${PWD#"$KISS_ROOT"}/${1##*/}" \ "$KISS_ROOT/var/db/kiss/installed/"*/manifest) # Extract the package name from the path above. pkg_owns=${pkg_owns%/*} pkg_owns=${pkg_owns##*/} printf '%s\n' "$pkg_owns"