my $export_only = 0; # only export, not building
my $tarfile = 0; # generate tar file for dependence & reverse dependence xml file
my $preordered_list = "";
+my $profiling_reference = "";
GetOptions (
"repository=s" => \@repos,
"export-only" => \$export_only,
"tarfile" => \$tarfile,
"preordered-list=s" => \$preordered_list,
+ "profiling-reference=s" => \$profiling_reference,
);
if ( $help ) {
my_system("rm -rf bsr_profiling_report");
- my $preview_command = "bsr preview -a $arch --verbose --depsnumbersort ";
- my $dep_xml_file = "$depends_dir/$dist/$arch/$dist\_$arch\_pkgdepends.xml";
- if (-e $dep_xml_file) {
- $preview_command = $preview_command . " -x \"$dep_xml_file\" ";
- }
+ my @preview_orders = ();
- # Get candidate repos
- my $candidate_ref = "";
- foreach my $r (@package_repos) {
- if (index($r, "base") != -1 || (index($r, "/debug") != -1)) {
- next;
- }
- $candidate_ref = $r;
- }
- if ($candidate_ref ne "") {
- $preview_command = $preview_command . " -r \"$candidate_ref\" --criticalsort ";
+ if ($preordered_list ne "") {
+ @preview_orders = split(',', $preordered_list)
}
- info("");
- info($preview_command);
- info("");
+ if ($profiling_reference ne "") {
+ my $preview_command = "bsr reorder -j $profiling_reference --verbose ";
+ my_system($preview_command);
+
+ info("");
+ info($preview_command);
+ info("");
- my_system($preview_command);
+ my $preview_config = "";
+ if (-f ".bsr.preview.yaml") {
+ $preview_config = LoadFile(".bsr.preview.yaml");
+ unlink ".bsr.preview.yaml";
+ if ($preview_config
+ && $preview_config->{preview}
+ && $preview_config->{preview}->{packages}
+ && @{$preview_config->{preview}->{packages}} > 0) {
- #.bsr.preview.yaml
+ info("We have preview orders... " . @{$preview_config->{preview}->{packages}});
- my $preview_config = "";
- $preordered_list = "";
- if (-f ".bsr.preview.yaml") {
- $preview_config = LoadFile(".bsr.preview.yaml");
- unlink ".bsr.preview.yaml";
- if ($preview_config
- && $preview_config->{preview}
- && $preview_config->{preview}->{packages}
- && @{$preview_config->{preview}->{packages}} > 0) {
- $preordered_list = join ",", @{$preview_config->{preview}->{packages}};
+ foreach my $p (@{$preview_config->{preview}->{packages}}) {
+ if ( !(grep $_ eq $p, @preview_orders) ) {
+ push @preview_orders, $p;
+ }
+ }
+
+ } else {
+ $preview_config = "";
+ info("Empty config");
+ }
} else {
$preview_config = "";
+ info("No .bsr.preview.yaml file found");
}
- } else {
- $preview_config = "";
}
- # Remove depends directory
- my_system("rm -rf $depends_dir");
+ if (@preview_orders) {
+ $preordered_list = join ",", @preview_orders;
+ }
}
sub profiling_report {
update_pkgdeps($reverse_on);
update_pkgrdeps();
-generate_depends_xmlfile();
-
if ($depends) {
+ generate_depends_xmlfile();
exit 0;
}
}
}
+
# Main process loop
# Every loop, first update package information
# include dependencies if there is new package