[v2,05/10] pakfire: Optimize upgradecore function

Message ID 20220728112136.30218-6-robin.roevens@disroot.org
State Accepted
Commit 5e1dbc95f727d6f65b1ef55d139347945dd7774c
Headers
Series pakfire: remove dup. code + seperate ui/logic |

Commit Message

Robin Roevens July 28, 2022, 11:21 a.m. UTC
  upgradecore function should just upgrade the core:
Moved check if upgrade is necessary to pakfire upgrade code, removing
code from upgradecore function duplicating codedbinfo workings.
Also adding more vebosity to pakfire upgrade.

Signed-off-by: Robin Roevens <robin.roevens@disroot.org>
---
 src/pakfire/lib/functions.pl | 47 +++++++++++++++---------------------
 src/pakfire/pakfire          | 16 +++++++++++-
 2 files changed, 35 insertions(+), 28 deletions(-)
  

Patch

diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl
index 971aa2d59..4f0515f62 100644
--- a/src/pakfire/lib/functions.pl
+++ b/src/pakfire/lib/functions.pl
@@ -773,35 +773,28 @@  sub setuppak {
 }
 
 sub upgradecore {
-	getcoredb("noforce");
-	eval(`grep "core_" $Conf::dbdir/lists/core-list.db`);
-	if ("$core_release" > "$Conf::core_mine") {
-		# Safety check for lazy testers:
-		# Before we upgrade to the latest release, we re-install the previous release
-		# to make sure that the tester has always been on the latest version.
-		my $tree = &get_tree();
-		$Conf::core_mine-- if ($tree eq "testing" || $tree eq "unstable");
-
-		message("CORE UPGR: Upgrading from release $Conf::core_mine to $core_release");
-
-		my @seq = `seq $Conf::core_mine $core_release`;
-		shift @seq;
-		my $release;
-		foreach $release (@seq) {
-			chomp($release);
-			getpak("core-upgrade-$release");
-		}
-
-		foreach $release (@seq) {
-			chomp($release);
-			upgradepak("core-upgrade-$release");
-		}
-
-		system("echo $core_release > $Conf::coredir/mine");
+	# Safety check for lazy testers:
+	# Before we upgrade to the latest release, we re-install the previous release
+	# to make sure that the tester has always been on the latest version.
+	my $tree = &get_tree();
+	$Conf::core_mine-- if ($tree eq "testing" || $tree eq "unstable");
 
-	} else {
-		message("CORE INFO: No new upgrades available. You are on release $Conf::core_mine.");
+	message("CORE UPGR: Upgrading from release $Conf::core_mine to $core_release");
+	
+	my @seq = ($Conf::core_mine .. $core_release);
+	shift @seq;
+	my $release;
+	foreach $release (@seq) {
+		chomp($release);
+		getpak("core-upgrade-$release");
 	}
+	
+	foreach $release (@seq) {
+		chomp($release);
+		upgradepak("core-upgrade-$release");
+	}
+	
+	system("echo $core_release > $Conf::coredir/mine");
 }
 
 sub isinstalled {
diff --git a/src/pakfire/pakfire b/src/pakfire/pakfire
index f23110cf5..351d71216 100644
--- a/src/pakfire/pakfire
+++ b/src/pakfire/pakfire
@@ -266,7 +266,21 @@ 
 			$use_color = "$Pakfire::color{'lightpurple'}";
 		}
 
-		&Pakfire::upgradecore();
+		&Pakfire::message("CORE INFO: Checking for Core-Updates...");
+
+		### Make sure that the core db is not outdated. 
+		&Pakfire::getcoredb("noforce");
+		my %coredb = &Pakfire::coredbinfo();
+
+		if (defined $coredb{'AvailableRelease'}) {
+			&Pakfire::upgradecore();
+		} else {
+			&Pakfire::message("CORE INFO: No new Core-Updates available. You are on release ".$coredb{'Release'});
+		}
+
+		&Pakfire::message("PAKFIRE INFO: Checking for package updates...");
+		### Make sure that the package list is not outdated. 
+		&Pakfire::dbgetlist("noforce");
 		
 		my @deps = ();
 		if (my %upgradepaks = &Pakfire::dblist("upgrade")) {