diff options
author | Michael Brown <mcb30@etherboot.org> | 2007-08-03 12:49:21 +0100 |
---|---|---|
committer | Michael Brown <mcb30@etherboot.org> | 2007-08-03 12:49:21 +0100 |
commit | 218651e1259da924a19db66e7cb9ae885075892f (patch) | |
tree | de255dec650ac21b552c04d9ce83578ef7cd4cdc /src/core | |
parent | 6e46dddc2c7521a076a4d274e4a89a69e9c1981d (diff) | |
download | ipxe-218651e1259da924a19db66e7cb9ae885075892f.tar.gz |
Display name and status of each file as it is downloaded.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/monojob.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/core/monojob.c b/src/core/monojob.c index b4042a3d..ea9bc834 100644 --- a/src/core/monojob.c +++ b/src/core/monojob.c @@ -16,6 +16,8 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include <string.h> +#include <stdio.h> #include <errno.h> #include <gpxe/process.h> #include <console.h> @@ -54,11 +56,14 @@ struct job_interface monojob = { /** * Wait for single foreground job to complete * + * @v string Job description to display * @ret rc Job final status code */ -int monojob_wait ( void ) { +int monojob_wait ( const char *string ) { int key; + int rc; + printf ( "%s... ", string ); monojob_rc = -EINPROGRESS; while ( monojob_rc == -EINPROGRESS ) { step(); @@ -67,12 +72,20 @@ int monojob_wait ( void ) { switch ( key ) { case CTRL_C: job_kill ( &monojob ); - return -ECANCELED; - break; + rc = -ECANCELED; + goto done; default: break; } } } - return monojob_rc; + rc = monojob_rc; + +done: + if ( rc ) { + printf ( "%s\n", strerror ( rc ) ); + } else { + printf ( "ok\n" ); + } + return rc; } |