aboutsummaryrefslogtreecommitdiff
path: root/contrib/kiss-owns
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2019-10-30 10:51:47 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2019-10-30 10:51:47 +0000
commitb1bede47810652d3fe72fba66d9a1afce391eef7 (patch)
tree78758763038103e56fa956f9579d2cbd237078d3 /contrib/kiss-owns
parent7b1b13cfbf82f38cc7bb1a587c579230bd3c659d (diff)
downloadcpt-b1bede47810652d3fe72fba66d9a1afce391eef7.tar.gz
kiss: Merge kiss-utils and kiss
FossilOrigin-Name: 6cabd29074b5abe15dd342797d3fc9b0c0271b3e001f388b360a3ee91b4a40ba
Diffstat (limited to 'contrib/kiss-owns')
-rwxr-xr-xcontrib/kiss-owns25
1 files changed, 25 insertions, 0 deletions
diff --git a/contrib/kiss-owns b/contrib/kiss-owns
new file mode 100755
index 0000000..249c52c
--- /dev/null
+++ b/contrib/kiss-owns
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+#
+# kiss-owns - Check which package owns a file.
+
+# Strip 'KISS_ROOT' from the file path if passed and
+# follow symlinks.
+file=$(readlink -f "$KISS_ROOT/${1##$KISS_ROOT}")
+
+# Check if the file exists and exit if it is not.
+[ -f "$file" ] || {
+ printf '%s\n' "error: file '$1' doesn't exist." >&2
+ exit 1
+}
+
+# Print the full path to the manifest file which contains
+# the match to our search.
+pkg_owns=$(grep -lFx "${file##$KISS_ROOT}" \
+ "$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] owns '$1'"