[Midnightbsd-cvs] mports: Utils.pm: Add recurse_ports.
ctriv at midnightbsd.org
ctriv at midnightbsd.org
Wed Sep 5 15:25:36 EDT 2007
Log Message:
-----------
Add recurse_ports. Only export symbols on request.
Modified Files:
--------------
mports/Tools/lib/Mport:
Utils.pm (r1.1 -> r1.2)
-------------- next part --------------
Index: Utils.pm
===================================================================
RCS file: /home/cvs/mports/Tools/lib/Mport/Utils.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -LTools/lib/Mport/Utils.pm -LTools/lib/Mport/Utils.pm -u -r1.1 -r1.2
--- Tools/lib/Mport/Utils.pm
+++ Tools/lib/Mport/Utils.pm
@@ -5,12 +5,14 @@
use strict;
use warnings;
use Exporter ();
+use Cwd ();
use Text::ParseWords qw(shellwords);
-use Mport::Globals qw($MAKE);
+
+use Mport::Globals qw($MAKE $ROOT);
*import = \&Exporter::import;
-our @EXPORT = qw(make_var);
+our @EXPORT_OK = qw(make_var recurse_ports);
sub make_var {
my $vars = join(' ', map { "-V $_" } @_);
@@ -22,8 +24,31 @@
return $ret;
}
}
+
+sub recurse_ports (&) {
+ my ($code) = @_;
+ my $orig = Cwd::getcwd();
+
+ _do_recurse($code, $ROOT);
+ chdir($orig);
+}
+sub _do_recurse {
+ my ($code, $cwd) = @_;
+
+ chdir($cwd);
+
+ my @dirs = make_var('SUBDIR');
+
+ if (@dirs) {
+ foreach my $dir (@dirs) {
+ _do_recurse($code, "$cwd/$dir");
+ }
+ } else {
+ $code->($cwd);
+ }
+}
1;
__END__
More information about the Midnightbsd-cvs
mailing list