From 9a46844693909ac5c82298d98ec81a75304e1e5a Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Tue, 3 Apr 2018 14:50:41 +0200 Subject: substitute bin/wtf by pkgfile --- README.md | 3 ++- bin/ii-connect | 7 +++--- bin/wtf | 59 ---------------------------------------------- conf/pkgfile.pacman32.conf | 37 +++++++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 64 deletions(-) delete mode 100755 bin/wtf create mode 100644 conf/pkgfile.pacman32.conf diff --git a/README.md b/README.md index d2dbfd2..1c1b211 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,8 @@ This includes scripts to be run on the build master as well as scripts to be run * some mysql-server * `nginx` or equivalent * `php-gd` -* `php-fpm` or quivalent +* `php-fpm` or equivalent +* `pkgfile` * `rsync` * `screen` * some ssh-server diff --git a/bin/ii-connect b/bin/ii-connect index 7ac589c..bb775a9 100755 --- a/bin/ii-connect +++ b/bin/ii-connect @@ -94,10 +94,9 @@ if [ "$1" = 'watch' ]; then p ' "${out_file}" | \ while read -r line; do - reason=$( - echo "${line}" | \ - xargs "${base_dir}/bin/wtf" 2>&1 - ) + if ! reason=$(pkgfile "${line}"); then + reason="Huh, I don't know that one." + fi if [ "$(echo "${reason}" | wc -l)" -le 5 ]; then echo "${reason}" else diff --git a/bin/wtf b/bin/wtf deleted file mode 100755 index 4c03103..0000000 --- a/bin/wtf +++ /dev/null @@ -1,59 +0,0 @@ -#!/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 '%d' "0x$( - printf '%s' "$*" | \ - sed ' - s,/$,, - s,.*/,, - ' | \ - sha224sum | \ - awk '{print $1}' | \ - cut -c 1-4 - )" -) - -partition=$((hash % mysql_files_table_partitions)) - -result=$( - # shellcheck disable=SC2016 - { - printf 'SELECT DISTINCT CONCAT(`repositories`.`name`,"/",' - mysql_package_name_query - printf ')' - printf ' FROM `binary_packages`' - mysql_join_binary_packages_architectures - mysql_join_binary_packages_repositories - printf ' JOIN `file_providers` PARTITION (p%s) ON `file_providers`.`package`=`binary_packages`.`id`' \ - "${partition}" - printf ' JOIN `files` PARTITION (p%s) ON `files`.`id`=`file_providers`.`file` AND `files`.`name_hash`=`file_providers`.`file_name_hash`' \ - "${partition}" - printf ' WHERE `files`.`name_hash`=%s' \ - "${hash}" - printf ' AND (`files`.`name`=from_base64("%s")' \ - "$( - printf '%s' "$*" | \ - base64 -w0 - )" - printf ' OR CONCAT(`files`.`path`,`files`.`name`)=from_base64("%s"))' \ - "$( - printf '%s' "$*" | \ - base64 -w0 - )" - } | \ - mysql_run_query -) - -if [ -z "${result}" ]; then - printf 'Huh, I don'"'"'t know that one.\n' -else - printf '%s\n' "${result}" -fi diff --git a/conf/pkgfile.pacman32.conf b/conf/pkgfile.pacman32.conf new file mode 100644 index 0000000..cb73152 --- /dev/null +++ b/conf/pkgfile.pacman32.conf @@ -0,0 +1,37 @@ +# pacman.conf for pkgfile to search through i686 repositories + +[staging] +Server = https://mirror.archlinux32.org/i686/$repo + +[community-staging] +Server = https://mirror.archlinux32.org/i686/$repo + +[testing] +Server = https://mirror.archlinux32.org/i686/$repo + +[community-testing] +Server = https://mirror.archlinux32.org/i686/$repo + +[core] +Server = https://mirror.archlinux32.org/i686/$repo + +[extra] +Server = https://mirror.archlinux32.org/i686/$repo + +[community] +Server = https://mirror.archlinux32.org/i686/$repo + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +#[multilib] +#Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs -- cgit v1.2.3-54-g00ecf