aboutsummaryrefslogtreecommitdiff
path: root/repology
diff options
context:
space:
mode:
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"