public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/gentoo-mirrorstats:master commit in: rsync_mirrors/, distfiles_mirrors/, /
@ 2020-04-28  7:43 Robin H. Johnson
  0 siblings, 0 replies; only message in thread
From: Robin H. Johnson @ 2020-04-28  7:43 UTC (permalink / raw
  To: gentoo-commits

commit:     4b612418355ae1f3f4b4575db4f7bbae1e8781e4
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 28 07:33:32 2020 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Tue Apr 28 07:43:51 2020 +0000
URL:        https://gitweb.gentoo.org/proj/gentoo-mirrorstats.git/commit/?id=4b612418

mirmon: start refactor of probe

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

 distfiles_mirrors/mirmon.conf                      |  2 +-
 .../probe-mirmon-distfiles => probe-mirmon         | 18 ++++++-
 rsync_mirrors/mirmon.conf                          |  2 +-
 rsync_mirrors/probe-mirmon-rsync                   | 60 ----------------------
 4 files changed, 18 insertions(+), 64 deletions(-)

diff --git a/distfiles_mirrors/mirmon.conf b/distfiles_mirrors/mirmon.conf
index 7994130..e43d772 100644
--- a/distfiles_mirrors/mirmon.conf
+++ b/distfiles_mirrors/mirmon.conf
@@ -4,7 +4,7 @@ icons ../icons
 countries /var/www/mirrorstats.gentoo.org/mirmon/countries.list
 mirror_list /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/distfiles_mirrors/var/g.mirrors
 state /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/distfiles_mirrors/var/mirmon.state
-probe /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/distfiles_mirrors/probe-mirmon-distfiles %TIMEOUT% %URL%distfiles/timestamp.mirmon
+probe /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/probe-mirmon %TIMEOUT% %URL%distfiles/timestamp.mirmon
 project_url http://www.gentoo.org/
 project_logo http://www.gentoo.org/images/gentoo-new.gif
 

diff --git a/distfiles_mirrors/probe-mirmon-distfiles b/probe-mirmon
similarity index 79%
rename from distfiles_mirrors/probe-mirmon-distfiles
rename to probe-mirmon
index 6e8ae52..7b57923 100755
--- a/distfiles_mirrors/probe-mirmon-distfiles
+++ b/probe-mirmon
@@ -32,6 +32,8 @@ sub main {
 
 sub handle_wget {
   my ( $timeout, $url ) = @_;
+  # TODO: replace this with native HTTP
+  # TODO: munge the output!
   exec {'/usr/bin/wget'} 'wget', qw( -q --passive-ftp -O - -T ), $timeout, '-t', 1, $url;
 }
 
@@ -54,8 +56,20 @@ sub handle_rsync {
     exit 900;                         # rediculous exit code.
   };
 
-  print <$fh>;
-#  print Date::Parse::str2time(<$fh>);
+  print munge_date(<fh>);
   exit 0;
 
 }
+
+sub munge_date {
+	my $timestr = $_;
+	my $timestamp = int($timestr);
+	my $year2020 = 1577836800;
+	my $year2038 = 2145916800;
+	# If the string starts with an epoch, just use that
+	if($int_timestamp >= $year2020 && $int_timestamp <= $year2038) {
+		return $int_timestamp;
+	} else {
+		return Date::Parse::str2time($timestr);
+	}
+}

diff --git a/rsync_mirrors/mirmon.conf b/rsync_mirrors/mirmon.conf
index 6627f55..94887a9 100644
--- a/rsync_mirrors/mirmon.conf
+++ b/rsync_mirrors/mirmon.conf
@@ -4,7 +4,7 @@ icons ../icons
 countries /var/www/mirrorstats.gentoo.org/mirmon/countries.list
 mirror_list /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/rsync_mirrors/var/g.mirrors
 state /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/rsync_mirrors/var/mirmon.state
-probe /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/rsync_mirrors/probe-mirmon-rsync %TIMEOUT% %URL%gentoo-portage/metadata/timestamp
+probe /var/www/mirrorstats.gentoo.org/gentoo-mirrorstats/probe-mirmon %TIMEOUT% %URL%gentoo-portage/metadata/timestamp
 project_url http://www.gentoo.org/
 project_logo http://www.gentoo.org/images/gentoo-new.gif
 

diff --git a/rsync_mirrors/probe-mirmon-rsync b/rsync_mirrors/probe-mirmon-rsync
deleted file mode 100755
index 2709319..0000000
--- a/rsync_mirrors/probe-mirmon-rsync
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/perl
-# $Id: probe-mirmon,v 1.4 2009/08/19 23:15:46 karl Exp $
-# 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 = $& ; }
-
-main(@ARGV);
-
-use Date::Parse (); # dev-perl/TimeDate
-use File::Tempdir;  # dev-perl/File-Tempdir
-
-sub main {
-  my ( $timeout, $url ) = @_;
-  if ( $url =~ m,^rsync://, ) {
-    handle_rsync( $timeout, $url );
-  }
-  else {
-    handle_wget( $timeout, $url );
-  }
-}
-
-sub handle_wget {
-  my ( $timeout, $url ) = @_;
-  exec {'/usr/bin/wget'} 'wget', qw( -q --passive-ftp -O - -T ), $timeout, '-t', 1, $url;
-}
-
-sub handle_rsync {
-  my ( $timeout, $url ) = @_;
-
-  my $tmpdir = File::Tempdir->new();
-  my $dir    = $tmpdir->name;
-  my $file   = $url;
-
-  $file =~ s/\W/_/g;    # translate all non-letters to _
-
-  if ( my $fail = system '/usr/bin/rsync', qw( --no-motd --timeout ), $timeout, $url, "$dir/$file" ) {
-    warn "rsync failed, exit code $fail, $! $? $@\n";
-    exit $fail;
-  }
-
-  open my $fh, '<', "$dir/$file" or do {
-    warn "Opening Downloaded timestamp Failed";
-    exit 900;                         # rediculous exit code.
-  };
-
-  print Date::Parse::str2time(<$fh>);
-  exit 0;
-
-}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-04-28  7:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-28  7:43 [gentoo-commits] proj/gentoo-mirrorstats:master commit in: rsync_mirrors/, distfiles_mirrors/, / Robin H. Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox