added funcs for version handling
authorRicardo Mones <ricardo@mones.org>
Tue, 22 Jul 2008 08:19:32 +0000 (08:19 +0000)
committerRicardo Mones <ricardo@mones.org>
Tue, 22 Jul 2008 08:19:32 +0000 (08:19 +0000)
ChangeLog
VERSION
clawsker

index d63c50b..024cbf8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-07-22 10:17  mones   0.5.0svn147
+
+       * clawsker
+               Added version checking and comparing functions
+
 2008-07-16 16:44  mones   0.5.0svn144
 
        * clawsker
diff --git a/VERSION b/VERSION
index 500b860..82bd1e7 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.5.0svn144
+0.5.0svn147
index 736fae8..808cfee 100755 (executable)
--- a/clawsker
+++ b/clawsker
@@ -238,6 +238,52 @@ use constant HBOX_SPC => 5;
 use constant FRAME_SPC => 2;
 use constant PAGE_SPC => 5;
 
+# version functions
+
+sub version_greater() {
+  my ($version, $refvers) = @_;
+  my @version = split (/\./, $version);
+  my @refvers = split (/\./, $refvers);
+  while ($#version < $#refvers) {
+    push (@version, '0');
+  }
+  my $idx = 0;
+  while (($idx <= $#refvers) 
+         and (int ($version[$idx]) == int ($refvers[$idx]))) {
+    ++$idx;
+  }
+  return TRUE if (($idx > $#refvers) 
+               or (int ($version[$idx]) > int ($refvers[$idx])));
+  return FALSE;
+}
+
+sub get_claws_version() {
+    my @cmbin = (
+        'claws-mail',
+    );
+    my $res = "";
+    foreach my $bin (@cmbin) {
+        $_ = qx/which $bin/;
+        chomp;
+        last if ($_ ne "");
+    }
+    return "" unless ($_); # not installed
+    $_ = qx/$_ -v/;
+    chomp;
+    my @fver = split (/ /);
+    die "Invalid version string" unless ($fver[2] eq "version");
+    my @ver = split (/\./, $fver[3]);
+    $res .= "$ver[0].";
+    $res .= "$ver[1].";
+    if ($ver[2] =~ /(\d+)cvs(\d+)/) {
+        $res .= "$1.$2";
+    }
+    else {
+        $res .= "$ver[2].0";
+    }
+    return $res;
+}
+
 # data handlers and auxiliar functions
 
 sub handle_bool_value {