45 lines
988 B
Plaintext
Raw Normal View History

2019-01-27 20:26:50 -08:00
#!/usr/bin/bash
# Fuzzy find a file and then check which package owns it
declare -r scriptname="fqo"
printHelp() {
cat << helpinfo
${scriptname} - fuzzy find a file and then check which package owns it
Usage: ${scriptname} [-h] [patterns]
Options:
-h, --help print this help page
helpinfo
}
while true; do
case "${1}" in
"-h"|"--help")
printHelp
exit
;;
--)
shift
break
;;
-*)
printf '%s\n' "Unknown option: ${1}" >&2
exit 1
;;
*)
break
;;
esac
done
[[ ! -x '/usr/bin/locate' ]] && echo 'locate is not present' && exit 1
[[ ! -x '/usr/bin/fzf' ]] && echo 'fzf is not present' && exit 1
[[ -z "${*}" ]] && printf '%s\n' "No patterns entered" >&2 && exit 1
file="$(locate --all --ignore-case --null -- "${@}" | fzf --exit-0 --select-1 --read0 --no-mouse)"
[[ ! "${file}" ]] && exit 1
pacman -Qo "${file}"