summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElan Ruusamäe2013-04-27 15:16:03 (GMT)
committerElan Ruusamäe2013-04-27 15:16:03 (GMT)
commit0d0bb80bf2d0745e6991a78327da498243fba93b (patch)
tree05d5df8bfdb3ee7ad161160c723d3833c48dca20
parent412d09873793cade6d14670fa677ec7c43e9cebd (diff)
downloadpldnotify-0d0bb80bf2d0745e6991a78327da498243fba93b.zip
pldnotify-0d0bb80bf2d0745e6991a78327da498243fba93b.tar.gz
special code to handle rubygem database
-rwxr-xr-x[-rw-r--r--]pldnotify.awk29
1 files changed, 28 insertions, 1 deletions
diff --git a/pldnotify.awk b/pldnotify.awk
index aff09d8..5ad01fb 100644..100755
--- a/pldnotify.awk
+++ b/pldnotify.awk
@@ -22,8 +22,9 @@
# To get full out of it, you need to have following tools installed:
# - perl, sed, wget, coreutils, util-linux
# - perl-HTML-Tree (HTML::TreeBuilder module) for better links parser (-vUSE_PERL=0 to disable)
-# - php-pear-PEAR for php-pear package updates
+# - pear (php-pear-PEAR) for php-pear package updates
# - npm for nodejs packages
+# - gem (ruby-rubygems) for ruby/rubygem packages
#
# Additionally "mirrors" file in current dir, controls local mirrors you prefer
@@ -632,6 +633,30 @@ function nodejs_upgrade(name, ver, cmd) {
return ver
}
+function rubygem_upgrade(name, ver, cmd, pkg) {
+ if (DEFS["gem_name"]) {
+ pkg = DEFS["gem_name"];
+
+ } else if (DEFS["gemname"]) {
+ pkg = DEFS["gemname"];
+
+ } else if (DEFS["pkgname"]) {
+ pkg = DEFS["pkgname"];
+
+ } else {
+ pkg = name;
+ gsub(/^ruby-/, "", pkg);
+ }
+
+ cmd = "gem list --remote '^" pkg "$' | awk '/" pkg "/ {v=$2; sub(/\(/, \"\", v); print v}'"
+ d("RUBYGEM " name " (as " pkg ") " ver ": " cmd);
+ cmd | getline ver
+
+ close(cmd)
+
+ return ver
+}
+
function chrome_upgrade(name, ver, cmd, sourceurl) {
sourceurl = "http://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/primary.xml.gz"
cmd = "curl -s " sourceurl " | zcat | perl -ne 'm{<name>google-chrome-" DEFS["state"] "</name>} and m{<version .*ver=.([\d.]+)} and print $1'"
@@ -655,6 +680,8 @@ function process_data(name, ver, rel, src, nver) {
nver = chrome_upgrade(name, ver);
} else if (name ~ "^nodejs-") {
nver = nodejs_upgrade(name, ver);
+ } else if (name ~ "^ruby-") {
+ nver = rubygem_upgrade(name, ver);
}
if (nver) {