From 2a6b3977f779fe4355366761cea53f43392dc9e2 Mon Sep 17 00:00:00 2001 From: fidian Date: Mon, 5 Mar 2001 15:28:48 +0000 Subject: [PATCH] Adding plugins back into 1.1 git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1167 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- plugins/make_archive.pl | 144 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100755 plugins/make_archive.pl diff --git a/plugins/make_archive.pl b/plugins/make_archive.pl new file mode 100755 index 00000000..3a3bf173 --- /dev/null +++ b/plugins/make_archive.pl @@ -0,0 +1,144 @@ +#!/usr/bin/perl +# +# This all could (maybe) be done in a shell script, but I suck at those. + +$i = 0; +$Verbose = 0; +$Plugin = ""; +$Version = ""; + +foreach $arg (@ARGV) +{ + if ($arg eq "-v") + { + $Verbose = 1; + } + elsif ($Plugin eq "") + { + $Plugin = $arg; + } + elsif ($Version eq "") + { + $Version = $arg; + } + else + { + print "Unrecognized argument: $arg\n"; + exit(0); + } +} + +if ($Version eq "") +{ + print "Syntax: make_archive.pl [-v] plugin_name version.number\n"; + print "-v = be verbose\n"; + exit(0); +} + + +print "Reformatting plugin name and version number.\n" if ($Verbose); +$Plugin =~ s/\///g; +$Version =~ s/\./_/g; + +VerifyInfo($Plugin, $Version); + +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.tar.gz\n"; +system("tar cvfz $Plugin-$Version.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); + + + +sub VerifyInfo +{ + local ($Plugin, $Version) = @_; + + 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 .= " $1"; + } + } + + if ($ExcludeStr ne "") + { + $ExcludeStr = " --exclude" . $ExcludeStr; + } + + 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; +} -- 2.25.1