summaryrefslogtreecommitdiff
path: root/www-apps/mirmon/files/0001-Add-rsync-monitoring-support-to-mirmon.patch
blob: 0c8c69d7795f0e11f5382002099b3cc7c24523ae (plain)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
https://bugs.gentoo.org/show_bug.cgi?id=289942

From d91f1f17be33dfc5ed771829639791b5463417a2 Mon Sep 17 00:00:00 2001
From: Jeremy Olexa <darkside@gentoo.org>
Date: Wed, 28 Oct 2009 20:58:45 -0500
Subject: [PATCH 1/2] Add rsync monitoring support to mirmon.

You will also need to modify mirmon.conf to use probe-mirmon instead
Original patch located at: http://www.tug.org/texlive/mirmon/probe-mirmon
---
 mirmon       |    2 +-
 probe-mirmon |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 1 deletions(-)
 create mode 100644 probe-mirmon

diff --git a/mirmon b/mirmon
index a1261f5..6c0aaa8 100755
--- a/mirmon
+++ b/mirmon
@@ -384,7 +384,7 @@ sub get_ccs
 sub type_site
   { my $url = shift ;
     my ( $type, $site, $home ) ;
-    if ( $url =~ m!^(ftp|http)://([^/:]+)(:\d+)?/! )
+    if ( $url =~ m!^(ftp|https?|rsync)://([^/:]+)(:\d+)?/! )
       { $type = $1 ; $site = $2 ; $home = $& ; }
     return $type, $site, $home ;
   }
diff --git a/probe-mirmon b/probe-mirmon
new file mode 100644
index 0000000..a7fe513
--- /dev/null
+++ b/probe-mirmon
@@ -0,0 +1,50 @@
+#!/usr/bin/env perl
+# $Id$
+# public domain.  Originally written by Karl Berry, 2009.
+# 
+# Probe rsync url's for mirmon; use wget for anything else.
+# From description at http://people.cs.uu.nl/henkp/mirmon.
+# 
+# Also requires a patch to mirmon itself to accept rsync urls
+# (and I wanted https too):
+# --- /usr/local/share/mirmon/ORIG/mirmon	2007-08-18 18:05:47.000000000 +0200
+# +++ /usr/local/share/mirmon/mirmon	2009-07-03 22:38:00.000000000 +0200
+# @@ -386,3 +386,3 @@
+#      my ( $type, $site, $home ) ;
+# -    if ( $url =~ m!^(ftp|http)://([^/:]+)(:\d+)?/! )
+# +    if ( $url =~ m!^(ftp|https?|rsync)://([^/:]+)(:\d+)?/! )
+#        { $type = $1 ; $site = $2 ; $home = $& ; }
+
+exit (&main ());
+
+sub main
+{
+  my ($timeout,$url) = @ARGV;
+  my $ret;
+
+  if ($url =~ m,^rsync://,) {
+    $ret = &handle_rsync ($timeout, $url);
+  } else {
+    $ret = system qq(wget -q -O - -t 1 -T $timeout $url);
+  }
+  return $ret;
+}
+
+
+sub handle_rsync
+{
+  my ($timeout,$url) = @_;
+  
+  my $tmpdir = "rsync-tmp";
+  -d $tmpdir || mkdir ($tmpdir, 0700);
+  
+  (my $file = $url) =~ s/\W/_/g;  # translate all non-letters to _
+  my $local = "$tmpdir/$file";
+  my $ret = system
+             qq(/usr/local/bin/rsync --no-motd --timeout $timeout $url $local);
+
+  @ARGV = ($local);  # don't care about our args any more.
+  print <>;          # let perl autoprint
+
+  return $ret;
+}
-- 
1.6.4.4