]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[monojob] Allow monojob to be completely silent
authorMichael Brown <mcb30@ipxe.org>
Mon, 21 May 2012 23:44:49 +0000 (00:44 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 21 May 2012 23:47:19 +0000 (00:47 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/core/monojob.c

index 7431f88a3a16333b3611784860dc1c00b80fb383..7917b4272087b531ede36192c067a3bd761230bc 100644 (file)
@@ -53,7 +53,7 @@ struct interface monojob = INTF_INIT ( monojob_intf_desc );
 /**
  * Wait for single foreground job to complete
  *
- * @v string           Job description to display
+ * @v string           Job description to display, or NULL to be silent
  * @ret rc             Job final status code
  */
 int monojob_wait ( const char *string ) {
@@ -67,7 +67,8 @@ int monojob_wait ( const char *string ) {
        unsigned int percentage;
        int shown_percentage = 0;
 
-       printf ( "%s...", string );
+       if ( string )
+               printf ( "%s...", string );
        monojob_rc = -EINPROGRESS;
        last_progress = currticks();
        while ( monojob_rc == -EINPROGRESS ) {
@@ -83,7 +84,7 @@ int monojob_wait ( const char *string ) {
                        }
                }
                elapsed = ( currticks() - last_progress );
-               if ( elapsed >= TICKS_PER_SEC ) {
+               if ( string && ( elapsed >= TICKS_PER_SEC ) ) {
                        if ( shown_percentage )
                                printf ( "\b\b\b\b    \b\b\b\b" );
                        job_progress ( &monojob, &progress );
@@ -106,10 +107,13 @@ int monojob_wait ( const char *string ) {
        if ( shown_percentage )
                printf ( "\b\b\b\b    \b\b\b\b" );
 
-       if ( rc ) {
-               printf ( " %s\n", strerror ( rc ) );
-       } else {
-               printf ( " ok\n" );
+       if ( string ) {
+               if ( rc ) {
+                       printf ( " %s\n", strerror ( rc ) );
+               } else {
+                       printf ( " ok\n" );
+               }
        }
+
        return rc;
 }