summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-03-27 11:41:56 +0200
committerErich Eckner <git@eckner.net>2018-03-27 11:41:56 +0200
commita9a3d766d05b6c7d24763e9276c5f7cc6ef1b981 (patch)
treed77dda044ec49e8e225e8192e08f72b8f6fd07ec
parent0070184c30396f71bd30e18af0733fd8b6cd33cf (diff)
downloadbuilder-a9a3d766d05b6c7d24763e9276c5f7cc6ef1b981.tar.xz
bin/wtf new
-rwxr-xr-xbin/wtf40
1 files changed, 40 insertions, 0 deletions
diff --git a/bin/wtf b/bin/wtf
new file mode 100755
index 0000000..0a48293
--- /dev/null
+++ b/bin/wtf
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# usage: wtf $file
+
+# Find out what package provides the given file.
+# $file may be a single file name or an absolute path.
+
+# shellcheck source=../conf/default.conf
+. "${0%/*}/../conf/default.conf"
+
+hash=$(
+ printf '%s' "$*" | \
+ sha512sum | \
+ awk '{print $1}'
+)
+
+result=$(
+ # shellcheck disable=SC2016
+ {
+ printf 'SELECT CONCAT(`repositories`.`name`,"/",'
+ mysql_package_name_query
+ printf ')'
+ printf ' FROM `binary_packages`'
+ mysql_join_binary_packages_architectures
+ mysql_join_binary_packages_repositories
+ mysql_join_binary_packages_file_providers
+ mysql_join_file_providers_files
+ printf ' WHERE `files`.`absolute_name_hash`="%s"' \
+ "${hash}"
+ printf ' OR `files`.`name_hash`="%s"' \
+ "${hash}"
+ } | \
+ mysql_run_query
+)
+
+if [ -z "${result}" ]; then
+ printf 'Huh, I don'"'"'t know that one.\n'
+else
+ printf '%s' "${result}"
+fi