aboutsummaryrefslogtreecommitdiff
path: root/repology
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2019-12-30 05:48:56 -0500
committerB. Watson <yalhcru@gmail.com>2019-12-30 05:48:56 -0500
commita2cc7e065abd8024392a60b00110073b11e019f1 (patch)
tree65fcf68d869c36156fecde391895b4f22b529017 /repology
parent107d068ea14529fdec7d9c0183fb094dd39952a1 (diff)
downloadelvi-impersonators-a2cc7e065abd8024392a60b00110073b11e019f1.tar.gz
Do-over...
Diffstat (limited to 'repology')
-rwxr-xr-xrepology41
1 files changed, 41 insertions, 0 deletions
diff --git a/repology b/repology
new file mode 100755
index 0000000..7e78c26
--- /dev/null
+++ b/repology
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# elvis: repology -- Search Linux distro package metadata with repology.org
+
+. surfraw || exit 1
+
+w3_usage_hook() {
+ cat <<EOF
+Usage: $w3_argv0 [options] [search words]...
+Description:
+ Surfraw search Linux distro package metadata
+Local options:
+ -p,-pkg,-package Search package names
+ -m,-maint Search maintainers by email address
+By default, if there's an @ in the search term, a maintainer search is done,
+otherwise a package search.
+EOF
+ w3_global_usage
+}
+
+w3_parse_option_hook() {
+ opt="$1"
+ optarg="$2"
+ case "$opt" in
+ -p|-pkg|-pac*) repo_target="/projects/" ;;
+ -m|-main*) repo_target="/maintainers/" ;;
+ *) return 1 ;;
+ esac
+ return 0
+}
+
+w3_config
+w3_parse_args "$@"
+
+[ -z "$repo_target" ] && case "$w3_args" in
+ *@*) repo_target="/maintainers/" ;;
+ *) repo_target="/projects/" ;;
+esac
+
+url="https://repology.org/${repo_target}?search=$( w3_url_of_arg $w3_args )";
+w3_browse_url "$url"