From b9bd4408dbf3399b3f63ff2eafb65162eea167f5 Mon Sep 17 00:00:00 2001 From: Lucy Phipps Date: Sat, 21 Nov 2020 02:53:06 +0000 Subject: [PATCH] a few improvements --- whatprovides | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/whatprovides b/whatprovides index a4d8ced..1107534 100755 --- a/whatprovides +++ b/whatprovides @@ -107,7 +107,7 @@ if [ $# -lt 1 ]; then fi if ${REVERSE_MODE}; then - if ! grep -qP '^[a-z0-9_+\-]+$' <<< "$1"; then + if ! grep -qx '[a-z0-9_+-]\+' <<< "$1"; then { echo echo "Error: package name '${1}' is not valid." @@ -116,11 +116,22 @@ if ${REVERSE_MODE}; then exit 1 fi - echo "SELECT owned_file FROM 'whatprovides' WHERE package_name == '${1}' ORDER BY owned_file;" | \ - sqlite3 "${DB_PATH}" | awk "{ print \"${1}: \"\$0 }" + sqlite3 "${DB_PATH}" \ + "SELECT owned_file FROM 'whatprovides' WHERE package_name == '${1}' ORDER BY owned_file" \ + | awk "{ print \"${1}: \"\$0 }" else - echo "SELECT package_name FROM 'whatprovides' WHERE owned_file == '$(realpath "${1}")' ORDER BY package_name;" | \ - sqlite3 "${DB_PATH}" | awk "{ print \$0\": $(realpath "${1}")\" }" + FILE="$(realpath "$1")" + if ! sqlite3 "${DB_PATH}" \ + "SELECT package_name FROM 'whatprovides' WHERE owned_file == '$FILE' ORDER BY package_name" \ + | awk "{ print \$0\": $FILE\" } END {if (NR == 0) exit 1 }" + then + { + echo + echo "Error: file '$1' is not found." + echo + } >&2 + exit 1 + fi fi exit 0