summaryrefslogtreecommitdiffstats
path: root/mgaapplet-upgrade-helper
diff options
context:
space:
mode:
Diffstat (limited to 'mgaapplet-upgrade-helper')
-rwxr-xr-xmgaapplet-upgrade-helper76
1 files changed, 40 insertions, 36 deletions
diff --git a/mgaapplet-upgrade-helper b/mgaapplet-upgrade-helper
index f06dade4..7c4286c9 100755
--- a/mgaapplet-upgrade-helper
+++ b/mgaapplet-upgrade-helper
@@ -62,42 +62,7 @@ $root = Rpmdrake::open_db::fast_open_urpmi_db()->{root};
read_sys_config();
my $product_id = get_product_id();
-# Find the matching new_distro_version
-my @distros = get_distro_list();
-if (!@distros) {
- ugtk2::ask_warn(N("Error"), N("Unable to download distro list"));
- die("unable to retrieve distro list\n");
-}
-
-my $new_distro = find { $_->{version} eq $new_distro_version } @distros;
-if (!$new_distro) {
- ugtk2::ask_warn(N("Error"), N("Distribution version %s was not found in the update list", $new_distro_version));
- die("could not find version '$new_distro_version' in the distro update list\n");
-}
-
-if ($new_distro->{needs_preparation}) {
- my $statefile = "$root/var/lib/mageia-prepare-upgrade/state";
- my $prepared = -f $statefile && cat_($statefile) =~ /ready/;
-
- if (!$prepared) {
- ugtk2::ask_yesorno(N("Preparation Required"), N("In order to upgrade, your current installation needs to be prepared.\n\nDo you wish to do this preparation now?")) or exit(0);
-
- my $in = interactive->vnew;
- my $do_pkgs = do_pkgs::do_pkgs($in);
- $do_pkgs->ensure_is_installed("mageia-prepare-upgrade") or exit(0);
-
- # Check to see if installation alone is enough to ensure things are in the right state?
- $prepared = -f $statefile && cat_($statefile) =~ /ready/;
- if (!$prepared) {
- my $infofile = "$root/usr/share/doc/mageia-prepare-upgrade/README.prepare";
- my $info = -f $infofile && ugtk2::escape_text_for_TextView_markup_format(join('', cat_($infofile)));
- $info ||= N("Further action is required before you can continue.\n\nPlease see %s for more information.", $new_distro->{url});
- ugtk2::ask_warn(N("Next Steps"), $info);
- exit(0) if !$::testing;
- log::l("I would validate /var/lib/mageia-prepare-upgrade/state == 'ready'");
- }
- }
-}
+check_preparation();
if (!$ENV{URPMI_IGNORESIZE}) {
check_available_free_space('/usr', 800) &&
@@ -201,6 +166,45 @@ sub create_upgrade_succeeded_window() {
return $w;
}
+sub check_preparation() {
+ # Find the matching new_distro_version
+ my @distros = get_distro_list();
+ if (!@distros) {
+ ugtk2::ask_warn(N("Error"), N("Unable to download distro list"));
+ die("unable to retrieve distro list\n");
+ }
+
+ my $new_distro = find { $_->{version} eq $new_distro_version } @distros;
+ if (!$new_distro) {
+ ugtk2::ask_warn(N("Error"), N("Distribution version %s was not found in the update list", $new_distro_version));
+ die("could not find version '$new_distro_version' in the distro update list\n");
+ }
+
+ if ($new_distro->{needs_preparation}) {
+ my $statefile = "$root/var/lib/mageia-prepare-upgrade/state";
+ my $prepared = -f $statefile && cat_($statefile) =~ /ready/;
+
+ if (!$prepared) {
+ ugtk2::ask_yesorno(N("Preparation Required"), N("In order to upgrade, your current installation needs to be prepared.\n\nDo you wish to do this preparation now?")) or exit(0);
+
+ my $in = interactive->vnew;
+ my $do_pkgs = do_pkgs::do_pkgs($in);
+ $do_pkgs->ensure_is_installed("mageia-prepare-upgrade") or exit(0);
+
+ # Check to see if installation alone is enough to ensure things are in the right state?
+ $prepared = -f $statefile && cat_($statefile) =~ /ready/;
+ if (!$prepared) {
+ my $infofile = "$root/usr/share/doc/mageia-prepare-upgrade/README.prepare";
+ my $info = -f $infofile && ugtk2::escape_text_for_TextView_markup_format(join('', cat_($infofile)));
+ $info ||= N("Further action is required before you can continue.\n\nPlease see %s for more information.", $new_distro->{url});
+ ugtk2::ask_warn(N("Next Steps"), $info);
+ exit(0) if !$::testing;
+ log::l("I would validate /var/lib/mageia-prepare-upgrade/state == 'ready'");
+ }
+ }
+ }
+}
+
sub upgrade() {
my $xid = gtkroot()->XWINDOW;