|
@@ -1,157 +0,0 @@
|
|
|
-#!/usr/bin/perl
|
|
|
-#
|
|
|
-# This all could (maybe) be done in a shell script, but I suck at those.
|
|
|
-
|
|
|
-$i = 0;
|
|
|
-$Verbose = 0;
|
|
|
-$Plugin = "";
|
|
|
-$Version = "";
|
|
|
-$SMVersion = "";
|
|
|
-
|
|
|
-foreach $arg (@ARGV)
|
|
|
-{
|
|
|
- if ($arg eq "-v")
|
|
|
- {
|
|
|
- $Verbose = 1;
|
|
|
- }
|
|
|
- elsif ($Plugin eq "")
|
|
|
- {
|
|
|
- $Plugin = $arg;
|
|
|
- }
|
|
|
- elsif ($Version eq "")
|
|
|
- {
|
|
|
- $Version = $arg;
|
|
|
- }
|
|
|
- elsif ($SMVersion eq "")
|
|
|
- {
|
|
|
- $SMVersion = $arg;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- print "Unrecognized argument: $arg\n";
|
|
|
- exit(0);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-if ($SMVersion eq "")
|
|
|
-{
|
|
|
- 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 "Validating name and version\n" if ($Verbose);
|
|
|
-$Plugin =~ 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);
|
|
|
-}
|
|
|
-
|
|
|
-VerifyPluginDir($Plugin);
|
|
|
-
|
|
|
-print "Getting file list.\n" if ($Verbose);
|
|
|
-@Files = RecurseDir($Plugin);
|
|
|
-
|
|
|
-$QuietString = " > /dev/null 2> /dev/null" if (! $Verbose);
|
|
|
-
|
|
|
-print "\n\n" if ($Verbose);
|
|
|
-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-$SMVersion.zip\n";
|
|
|
-#system("zip -r $Plugin.$Version-$SMVersion.zip $Plugin/" .
|
|
|
-# FindZipExcludes(@Files) . $QuietString);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-sub VerifyPluginDir
|
|
|
-{
|
|
|
- local ($Plugin) = @_;
|
|
|
-
|
|
|
- if (! -e $Plugin && ! -d $Plugin)
|
|
|
- {
|
|
|
- print "The $Plugin directory doesn't exist, " .
|
|
|
- "or else it is not a directory.\n";
|
|
|
- exit(0);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-sub FindTarExcludes
|
|
|
-{
|
|
|
- local (@Files) = @_;
|
|
|
-
|
|
|
- $ExcludeStr = "";
|
|
|
-
|
|
|
- foreach $File (@Files)
|
|
|
- {
|
|
|
- if ($File =~ /^(.*\/CVS)\/$/)
|
|
|
- {
|
|
|
- $ExcludeStr .= " --exclude $1";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return $ExcludeStr;
|
|
|
-}
|
|
|
-
|
|
|
-sub FindZipExcludes
|
|
|
-{
|
|
|
- local (@Files) = @_;
|
|
|
-
|
|
|
- $ExcludeStr = "";
|
|
|
-
|
|
|
- foreach $File (@Files)
|
|
|
- {
|
|
|
- if ($File =~ /^(.*\/CVS)\/$/)
|
|
|
- {
|
|
|
- $ExcludeStr .= " $1/ $1/*";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if ($ExcludeStr ne "")
|
|
|
- {
|
|
|
- $ExcludeStr = " -x" . $ExcludeStr;
|
|
|
- }
|
|
|
-
|
|
|
- return $ExcludeStr;
|
|
|
-}
|
|
|
-
|
|
|
-sub RecurseDir
|
|
|
-{
|
|
|
- local ($Dir) = @_;
|
|
|
- local (@Files, @Results);
|
|
|
-
|
|
|
- opendir(DIR, $Dir);
|
|
|
- @Files = readdir(DIR);
|
|
|
- closedir(DIR);
|
|
|
-
|
|
|
- @Results = ("$Dir/");
|
|
|
-
|
|
|
- foreach $file (@Files)
|
|
|
- {
|
|
|
- next if ($file =~ /^[\.]+/);
|
|
|
- if (-d "$Dir/$file")
|
|
|
- {
|
|
|
- push (@Results, RecurseDir("$Dir/$file"));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- push (@Results, "$Dir/$file");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return @Results;
|
|
|
-}
|