diff options
Diffstat (limited to 'Tools')
-rwxr-xr-x | Tools/scripts/addport | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/Tools/scripts/addport b/Tools/scripts/addport index 11c3981acfad..d80fef29a989 100755 --- a/Tools/scripts/addport +++ b/Tools/scripts/addport @@ -341,7 +341,7 @@ foreach my $thisdir (@dirs) { } # figure out where the port name belongs in category Makefile - my @ports = &lsports; + my ($spaces, @ports) = &lsports; errx(1, "Error: $portname already exists in $category\'s Makefile") if (&contains($portname, @ports)); my $port = ""; foreach my $tmp (sort(@ports)) { @@ -364,16 +364,16 @@ foreach my $thisdir (@dirs) { # there were previous SUBDIR lines, but none was greater than we are, # means, we're the last port, so, add ourselves after the last port $port = $ports[$#ports]; - $cmd = "/^ SUBDIR += $port/\na\n"; + $cmd = "/^" . $spaces . "SUBDIR += $port/\na\n"; } else { # OK, append ourselves in the right place, so things *stay* sorted. - $cmd = "/^ SUBDIR += $port/\ni\n"; + $cmd = "/^" . $spaces . "SUBDIR += $port/\ni\n"; } } print "Inserting new port into $category/Makefile...\n"; open(ED, "|ed Makefile") || die "Cannot start ed to actually insert module\n"; - print ED "$cmd SUBDIR += $portname\n.\nw\nq\n"; - close(ED); + print ED "$cmd" . $spaces . "SUBDIR += $portname\n.\nw\nq\n"; + close(ED); # commit the actual port. chdir "$tmpdir/$category" or err(1, "$tmpdir/$category"); @@ -499,18 +499,25 @@ sub contains($@) { sub lsports() { my @rv = (); + my $spaces; open(F, "Makefile") || die "can't open Makefile: $!"; while(<F>) { chomp; chomp; next if $_ !~ m/SUBDIR/; + + if ( !defined($spaces) ) { + m/^([\s\t]+)[^\s\t]/; + $spaces = $1; + } + s/^[ \t]+SUBDIR[ \t]+\+?=[\ \t]+//; push(@rv, $_); } close(F); - return @rv; + return ($spaces, @rv); } # this finds the last comment in the Makefile |