diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-05-13 13:22:16 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-05-13 13:22:16 +0200 |
commit | 777967f97b8cd615807868d90e4f61a1c4faf024 (patch) | |
tree | 4f3c6a1101b6f5140fdf104f3bf36648ee6452f0 | |
parent | 868e545eb2402063b562383f944fb5b865022de2 (diff) | |
parent | 9812986913250f1f61d90f1e75a3192b11533829 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
skipped all sha1 updates.
Change-Id: I1f741cf7bea806ab238b4f1b5585bb440dafd4f7
-rwxr-xr-x | init-repository | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/init-repository b/init-repository index fd291252..2580b0f6 100755 --- a/init-repository +++ b/init-repository @@ -333,26 +333,36 @@ sub git_clone_all_submodules my %include = (); foreach my $mod (@subset) { + my $del = ($mod =~ s/^-//); + my $fail = 0; + my @what; if ($mod eq "all") { - map { $include{$_} = 1; } keys %subbases; + @what = keys %subbases; } elsif ($mod eq "essential") { - map { $include{$_} = 1; } grep { ($subinits{$_} || 0) eq STS_ESSENTIAL } keys %subbases; + @what = grep { ($subinits{$_} || 0) eq STS_ESSENTIAL } keys %subbases; } elsif ($mod eq "addon") { - map { $include{$_} = 1; } grep { ($subinits{$_} || 0) eq STS_ADDON } keys %subbases; + @what = grep { ($subinits{$_} || 0) eq STS_ADDON } keys %subbases; } elsif ($mod eq "preview") { - map { $include{$_} = 1; } grep { ($subinits{$_} || 0) eq STS_PREVIEW } keys %subbases; + @what = grep { ($subinits{$_} || 0) eq STS_PREVIEW } keys %subbases; } elsif ($mod eq "deprecated") { - map { $include{$_} = 1; } grep { ($subinits{$_} || 0) eq STS_DEPRECATED } keys %subbases; + @what = grep { ($subinits{$_} || 0) eq STS_DEPRECATED } keys %subbases; } elsif ($mod eq "obsolete") { - map { $include{$_} = 1; } grep { ($subinits{$_} || 0) eq STS_OBSOLETE } keys %subbases; - } elsif ($mod =~ s/^-//) { + @what = grep { ($subinits{$_} || 0) eq STS_OBSOLETE } keys %subbases; + } elsif ($mod eq "ignore") { + @what = grep { ($subinits{$_} || 0) eq 0 } keys %subbases; + } elsif (defined($subdirs{$mod})) { + push @what, $mod; + } else { + $fail = 1; + } + if ($del) { print "Warning: excluding non-existent module '$mod'.\n" - if (!defined($subdirs{$mod})); - delete $include{$mod}; + if ($fail); + map { delete $include{$_} } @what; } else { die("Error: module subset names non-existent '$mod'.\n") - if (!defined($subdirs{$mod})); - $include{$mod} = 1; + if ($fail); + map { $include{$_} = 1; } @what; } } |