summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/tools.c
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2000-12-12 21:49:14 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2000-12-12 21:49:14 +0000
commitb8a6765874054e3f3966896a8763f7352d9ff8f1 (patch)
tree58a6aacfc446cf363ef147e1cb8b5166ca410d12 /mdk-stage1/tools.c
parent2b2914cc04a93ca362e4eb3663061c3039aa4049 (diff)
downloaddrakx-b8a6765874054e3f3966896a8763f7352d9ff8f1.tar
drakx-b8a6765874054e3f3966896a8763f7352d9ff8f1.tar.gz
drakx-b8a6765874054e3f3966896a8763f7352d9ff8f1.tar.bz2
drakx-b8a6765874054e3f3966896a8763f7352d9ff8f1.tar.xz
drakx-b8a6765874054e3f3966896a8763f7352d9ff8f1.zip
progressbar for newt+stdio while loading ramdisk
Diffstat (limited to 'mdk-stage1/tools.c')
-rw-r--r--mdk-stage1/tools.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/mdk-stage1/tools.c b/mdk-stage1/tools.c
index 930c1027f..c1e934ab0 100644
--- a/mdk-stage1/tools.c
+++ b/mdk-stage1/tools.c
@@ -193,12 +193,13 @@ enum return_type load_ramdisk(void)
char * img_name;
gzFile st2;
char * ramdisk = "/dev/ram3"; /* warning, verify that this file exists in the initrd (and actually is a ramdisk device file) */
- int ram_fd;
+ int ram_fd, st2_fd;
char buffer[4096];
char * stg2_name = get_param_valued("special_stage2");
char * begin_img = "/tmp/image/Mandrake/base/";
char * end_img = "_stage2.gz";
int gz_errnum;
+ struct stat statr;
if (!stg2_name)
stg2_name = "mdkinst";
@@ -213,7 +214,9 @@ enum return_type load_ramdisk(void)
log_message("trying to load %s as a ramdisk", img_name);
- st2 = gzopen(img_name, "r");
+ st2_fd = open(img_name, O_RDONLY); /* to be able to see the progression */
+ st2 = gzdopen(st2_fd, "r");
+
if (!st2) {
log_message("Opening compressed ramdisk: %s", gzerror(st2, &gz_errnum));
error_message("Could not open compressed ramdisk file.");
@@ -226,8 +229,9 @@ enum return_type load_ramdisk(void)
error_message("Could not open ramdisk device file.");
return RETURN_ERROR;
}
-
- wait_message("Loading Installation program into memory...");
+
+ stat(img_name, &statr);
+ init_progression("Loading Installation program into memory...", statr.st_size);
while (!gzeof(st2)) {
int actually = gzread(st2, buffer, sizeof(buffer));
@@ -241,11 +245,11 @@ enum return_type load_ramdisk(void)
remove_wait_message();
return RETURN_ERROR;
}
- log_progression(100);
+ update_progression(lseek(st2_fd, 0L, SEEK_CUR));
}
- log_progression_done();
- remove_wait_message();
+ end_progression();
+
gzclose(st2);
close(ram_fd);