diff options
author | Erich Eckner <git@eckner.net> | 2018-07-06 10:31:08 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2018-07-06 10:31:08 +0200 |
commit | 48abda2dd07cb8379996d0046bd99fdbb9dbd29d (patch) | |
tree | 0e001b18ff733e0971dfd087822759299d04b1a6 | |
parent | a4b94e21dc895f796e8a89be14416c8f949474ab (diff) | |
download | builder-48abda2dd07cb8379996d0046bd99fdbb9dbd29d.tar.xz |
bin/wtp new to query package database
-rwxr-xr-x | bin/ii-answer | 25 | ||||
-rwxr-xr-x | bin/wtp | 46 |
2 files changed, 71 insertions, 0 deletions
diff --git a/bin/ii-answer b/bin/ii-answer index 8bbdbb1..0fa032c 100755 --- a/bin/ii-answer +++ b/bin/ii-answer @@ -93,6 +93,31 @@ find "${irc_dir}" \ irc_say "${channel}" 'copy' done fi + # answer "wtp?" + regex='^\S\+ <\(\S\+\)> '"${prefix}"'!\?wtp ' + if grep -q "${regex}" "${out_file}"; then + sed -i ' + s/'"${regex}"'/\1 / + T + w /dev/stdout + d + ' "${out_file}" | \ + while read -r asker line; do + reason=$("${base_dir}/bin/wtp" "${line}"); + if [ -z "${reason}" ]; then + reason="No, we don't have that." + fi + reason="${asker}: ${reason}" + if [ "$(echo "${reason}" | wc -l)" -le 5 ]; then + echo "${reason}" + else + echo "${reason}" | \ + head -n5 + printf '... (%s lines total)\n' "$(echo "${reason}" | wc -l)" + fi | \ + irc_say "${channel}" 'copy' + done + fi # answer "What's up?" regex='^\S\+ <\S\+> .*[Ww]hat'"'"'\?s *[Uu]p' if grep "${regex}" "${out_file}" | \ @@ -0,0 +1,46 @@ +#!/bin/sh + +# search for a package in the database + +# shellcheck disable=SC2119,SC2120 + +# shellcheck source=../lib/load-configuration +. "${0%/*}/../lib/load-configuration" + +# shellcheck disable=SC2016 +{ + printf 'SELECT' + printf ' CONCAT(' + printf '`architectures`.`name`,"/",' + printf '`binary_packages`.`pkgname`,": ",' + printf 'GROUP_CONCAT(' + printf 'CONCAT(' + printf '`r_a`.`name`,"/",' + printf '`repositories`.`name`," (",' + printf 'IF(' + printf '`binary_packages`.`epoch`=0,' + printf '"",' + printf 'CONCAT(`binary_packages`.`epoch`,":")' + printf '),' + printf '`binary_packages`.`pkgver`,"-",' + printf '`binary_packages`.`pkgrel`,' + printf 'IF(' + printf 'NOT `binary_packages`.`sub_pkgrel_omitted`,' + printf 'CONCAT(".",`binary_packages`.`sub_pkgrel`),' + printf '""),' + printf '")"' + printf ') SEPARATOR ", "' + printf ')' + printf ')' + printf ' FROM `binary_packages`' + mysql_join_binary_packages_architectures + mysql_join_binary_packages_binary_packages_in_repositories + mysql_join_binary_packages_in_repositories_repositories + mysql_join_repositories_architectures '' 'r_a' + printf ' WHERE `binary_packages`.`pkgname` LIKE from_base64("' + printf '%s' "$*" | \ + base64 -w0 + printf '") AND `repositories`.`is_on_master_mirror`' + printf ' GROUP BY CONCAT(`binary_packages`.`pkgname`,"-",`architectures`.`name`);\n' +} | \ + mysql_run_query |