Began rework of options page. Also added 3 plugins (filters, translate, and squirrels...
[squirrelmail.git] / plugins / make_archive.pl
index 3a3bf1739774f11d0db2f98efb259dd96c725f39..b7124bbc697418cf6920e87b3df8903d65d2c9db 100755 (executable)
@@ -6,6 +6,7 @@ $i = 0;
 $Verbose = 0;
 $Plugin = "";
 $Version = "";
+$SMVersion = "";
 
 foreach $arg (@ARGV)
 {
@@ -21,6 +22,10 @@ foreach $arg (@ARGV)
     {
         $Version = $arg;
     }
+    elsif ($SMVersion eq "")
+    {
+        $SMVersion = $arg;
+    }
     else
     {
         print "Unrecognized argument:  $arg\n";
@@ -28,19 +33,32 @@ foreach $arg (@ARGV)
     }
 }
 
-if ($Version eq "")
+if ($SMVersion eq "")
 {
-    print "Syntax:  make_archive.pl [-v] plugin_name version.number\n";
+    print "Syntax:  make_archive.pl [-v] plugin_name version sm_version\n";
     print "-v = be verbose\n";
+    print "plugin_name:  The name of the plugin\n";
+    print "version:  The plugin's version number (1.0, 2.3, etc)\n";
+    print "sm_version:  The oldest version of SquirrelMail that this\n";
+    print "  plugin is for sure compatible with (1.0.1, 0.5, 1.1.0, etc)\n";
     exit(0);
 }
 
 
-print "Reformatting plugin name and version number.\n" if ($Verbose);
+print "Validating name and version\n" if ($Verbose);
 $Plugin =~ s/\///g;
-$Version =~ s/\./_/g;
+if ($Plugin =~ /[^a-z_]/)
+{
+    print "Plugin name can only contain a-z and _\n";
+    exit(0);
+}
+if ($Version =~ /[^\.0-9]/ || $SMVersion =~ /[^\.0-9]/)
+{
+    print "Version numbers can only have 0-9 and period\n";
+    exit(0);
+}
 
-VerifyInfo($Plugin, $Version);
+VerifyPluginDir($Plugin);
 
 print "Getting file list.\n" if ($Verbose);
 @Files = RecurseDir($Plugin);
@@ -48,20 +66,20 @@ print "Getting file list.\n" if ($Verbose);
 $QuietString = " > /dev/null 2> /dev/null" if (! $Verbose);
 
 print "\n\n" if ($Verbose);
-print "Creating $Plugin-$Version.tar.gz\n";
-system("tar cvfz $Plugin-$Version.tar.gz $Plugin" . FindTarExcludes(@Files)
-    . $QuietString);
+print "Creating $Plugin.$Version-$SMVersion.tar.gz\n";
+system("tar cvfz $Plugin.$Version-$SMVersion.tar.gz $Plugin" . 
+    FindTarExcludes(@Files) . $QuietString);
     
-print "\n\n" if ($Verbose);
-print "Creating $Plugin-$Version.zip\n";
-system("zip -r $Plugin-$Version.zip $Plugin/" . FindZipExcludes(@Files)
-    . $QuietString);
+#print "\n\n" if ($Verbose);
+#print "Creating $Plugin.$Version-$SMVersion.zip\n";
+#system("zip -r $Plugin.$Version-$SMVersion.zip $Plugin/" . 
+#    FindZipExcludes(@Files) . $QuietString);
 
 
 
-sub VerifyInfo
+sub VerifyPluginDir
 {
-    local ($Plugin, $Version) = @_;
+    local ($Plugin) = @_;
     
     if (! -e $Plugin && ! -d $Plugin)
     {
@@ -82,15 +100,10 @@ sub FindTarExcludes
     {
         if ($File =~ /^(.*\/CVS)\/$/)
        {
-           $ExcludeStr .= " $1";
+           $ExcludeStr .= " --exclude $1";
        }
     }
     
-    if ($ExcludeStr ne "")
-    {
-        $ExcludeStr = " --exclude" . $ExcludeStr;
-    }
-    
     return $ExcludeStr;
 }