summaryrefslogtreecommitdiff
path: root/coreconf/coreconf.pl
diff options
context:
space:
mode:
authorKai Engert <kaie@kuix.de>2013-02-28 12:44:50 +0100
committerKai Engert <kaie@kuix.de>2013-02-28 12:44:50 +0100
commit3ecd967b2a9e23403935e2bc932597f7e03e7f24 (patch)
tree4b0f054f0354c2dbe401f86d864c04c6034c1621 /coreconf/coreconf.pl
parentf45b9ca74a609e0521d0cc4b7fc91603774992df (diff)
downloadnss-hg-3ecd967b2a9e23403935e2bc932597f7e03e7f24.tar.gz
Bug 845556, reorganize NSS directory layout, moving files, very large changeset! r=wtc
Diffstat (limited to 'coreconf/coreconf.pl')
-rw-r--r--coreconf/coreconf.pl128
1 files changed, 128 insertions, 0 deletions
diff --git a/coreconf/coreconf.pl b/coreconf/coreconf.pl
new file mode 100644
index 000000000..7cf3e57d0
--- /dev/null
+++ b/coreconf/coreconf.pl
@@ -0,0 +1,128 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+sub recursive_copy {
+ local($fromdir);
+ local($todir);
+ local(@dirlist);
+ $fromdir = shift;
+ $todir = shift;
+
+ print STDERR "recursive copy called with $fromdir, $todir\n";
+
+#remove any trailing slashes.
+ $fromdir =~ s/\/$//;
+ $todir =~ s/\/$//;
+
+ opendir(DIR, $fromdir);
+ @dirlist = readdir DIR;
+ close DIR;
+
+
+ foreach $file (@dirlist) {
+ if (! (($file eq "." ) || ($file eq "..") )) {
+
+ if (-d "$fromdir/$file") {
+ print STDERR "handling directory $todir/$file\n";
+ &rec_mkdir("$todir/$file");
+ &recursive_copy("$fromdir/$file","$todir/$file");
+ }
+ else {
+ print STDERR "handling file $fromdir/$file\n";
+ &my_copy("$fromdir/$file","$todir/$file");
+ }
+ }
+ }
+}
+
+sub parse_argv {
+
+# print STDERR "Parsing Variables\n";
+
+ foreach $q ( @ARGV ) {
+ if (! ($q =~ /=/)) {
+ $var{$lastassigned} .= " $q";
+ }
+ else {
+ $q =~ /^([^=]*)=(.*)/;
+ $left = $1;
+ $right = $2;
+
+ $right =~ s/ *$//;
+ $var{$left} = $right;
+
+ $lastassigned = $left;
+
+ }
+ print STDERR "Assigned $lastassigned = $var{$lastassigned}\n";
+ }
+}
+
+
+# usage: &my_copy("dir/fromfile","dir2/tofile");
+# do a 'copy' - files only, 'to' MUST be a filename, not a directory.
+
+# fix this to be able to use copy on win nt.
+
+sub my_copy {
+ local($from);
+ local($to);
+ local($cpcmd);
+
+ $from = shift;
+ $to = shift;
+
+ if ( ! defined $var{OS_ARCH}) {
+ die "OS_ARCH not defined!";
+ }
+ else {
+ if ($var{OS_ARCH} eq 'WINNT') {
+ $cpcmd = 'cp';
+ }
+ else {
+ $cpcmd = 'cp';
+ }
+ print STDERR "COPYING: $cpcmd $from $to\n";
+ system("$cpcmd $from $to");
+ }
+}
+
+
+sub old_my_copy {
+ local($from);
+ local($to);
+
+ $from = shift;
+ $to = shift;
+ open(FIN, "<$from") || die("Can't read from file $from\n");
+ if ( ! open(FOUT,">$to")) {
+ close FIN;
+ die "Can't write to file $to\n";
+ }
+ while (read(FIN, $buf, 100000)) {
+ print FOUT $buf;
+ }
+ close (FIN);
+ close (FOUT);
+}
+
+sub rec_mkdir {
+ local($arg);
+ local($t);
+ local($q);
+
+ $arg = shift;
+ $t = "";
+ foreach $q (split(/\//,$arg)) {
+ $t .= $q;
+ if (! ($t =~ /\.\.$/)) {
+ if ($t =~ /./) {
+ mkdir($t,0775);
+ }
+ }
+ $t.= '/';
+ }
+}
+
+1;