mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
installer: Make networking and download functions more user-friendly
Allows to retry after a failed attempt or abort
This commit is contained in:
@@ -351,37 +351,57 @@ int main(int argc, char *argv[]) {
|
||||
/* If we could not find a source drive, we will try
|
||||
* downloading the install image */
|
||||
if (!sourcedrive) {
|
||||
require_networking = 1;
|
||||
|
||||
if (!unattended) {
|
||||
rc = newtWinOkCancel(title, _("No source drive could be found.\n\n"
|
||||
"You can try to download the required installation data. "
|
||||
"Please make sure to connect your machine to a network and "
|
||||
"the installer will try connect to acquire an IP address."),
|
||||
55, 10, _("Download installation image"), _("Cancel"));
|
||||
// Show the right message to the user
|
||||
char reason[STRING_SIZE];
|
||||
if (require_networking) {
|
||||
snprintf(reason, sizeof(reason),
|
||||
_("The installer will now try downloading the installation image."));
|
||||
} else {
|
||||
snprintf(reason, sizeof(reason),
|
||||
_("No source drive could be found.\n\n"
|
||||
"You can try downloading the required installation image."));
|
||||
}
|
||||
snprintf(message, sizeof(message), "%s %s", reason,
|
||||
_("Please make sure to connect your machine to a network and "
|
||||
"the installer will try connect to acquire an IP address."));
|
||||
|
||||
rc = newtWinOkCancel(title, message, 55, 12,
|
||||
_("Download installation image"), _("Cancel"));
|
||||
|
||||
if (rc != 0)
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
require_networking = 1;
|
||||
}
|
||||
|
||||
// Try starting the networking if we require it
|
||||
if (require_networking) {
|
||||
statuswindow(60, 4, title, _("Trying to start networking (DHCP)..."));
|
||||
while (1) {
|
||||
statuswindow(60, 4, title, _("Trying to start networking (DHCP)..."));
|
||||
|
||||
rc = hw_start_networking(logfile);
|
||||
newtPopWindow();
|
||||
rc = hw_start_networking(logfile);
|
||||
newtPopWindow();
|
||||
|
||||
if (rc) {
|
||||
errorbox(_("Networking could not be started "
|
||||
"but is required to go on with the installation.\n\n"
|
||||
"Please connect your machine to a network with a "
|
||||
"DHCP server and retry."));
|
||||
goto EXIT;
|
||||
// Networking was successfully started
|
||||
if (rc == 0) {
|
||||
break;
|
||||
|
||||
// An error happened, ask the user what to do
|
||||
} else {
|
||||
rc = newtWinOkCancel(title, _("Networking could not be started "
|
||||
"but is required to go on with the installation.\n\n"
|
||||
"Please connect your machine to a network with a "
|
||||
"DHCP server and retry."), 50, 10, _("Retry"), _("Cancel"));
|
||||
|
||||
if (rc)
|
||||
goto EXIT;
|
||||
}
|
||||
}
|
||||
|
||||
// Download the image if required
|
||||
if (!sourcedrive) {
|
||||
while (!sourcedrive) {
|
||||
snprintf(commandstring, sizeof(commandstring), "/usr/bin/downloadsource.sh %s", SOURCE_TEMPFILE);
|
||||
runcommandwithstatus(commandstring, title, _("Downloading installation image..."), logfile);
|
||||
|
||||
@@ -390,8 +410,11 @@ int main(int argc, char *argv[]) {
|
||||
sourcedrive = SOURCE_TEMPFILE;
|
||||
fclose(f);
|
||||
} else {
|
||||
errorbox(_("The installation image could not be downloaded."));
|
||||
goto EXIT;
|
||||
rc = newtWinOkCancel(title, _("The installation image could not be downloaded."),
|
||||
60, 8, _("Retry"), _("Cancel"));
|
||||
|
||||
if (rc)
|
||||
goto EXIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user