-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpacurl
executable file
·54 lines (42 loc) · 832 Bytes
/
pacurl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/bash
set -eu
readonly THIS_CMD="${0##*/}"
readonly VERSION='0.0.1'
readonly PACMANS=(
"paru"
"yay"
"pacman"
)
function _help() {
echo -e "
${THIS_CMD} -- Get url
USAGE
${THIS_CMD} [OPTIONS] KEYWORDS...
OPTIONS
"
}
function _main() {
_get_pkg_url "${@}"
}
function _get_pacman_cmd() {
local _cmd
for _cmd in "${PACMANS[@]}"; do
if command -v "${_cmd}" &>/dev/null; then
echo -n "${_cmd}"
return 0
fi
done
_err 'The command for pacman or AUR helper was not found.'
exit 1
}
function _get_pkg_url() {
pkg_keywords="${@}"
local pacman_cmd
pacman_cmd="$(_get_pacman_cmd)"
LANG=C "${pacman_cmd}" --query --search --quiet "${pkg_keywords}" |
"${pacman_cmd}" --query --info - |
awk '/^Name/{name=$3} /^URL/{url=$3} {print name, url}' |
sort --unique
}
_main "${@}"
exit "${?}"