diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.cpp b/src/libcalamares/utils/CalamaresUtilsSystem.cpp index 4d70e2a78..981132ae1 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.cpp +++ b/src/libcalamares/utils/CalamaresUtilsSystem.cpp @@ -258,34 +258,37 @@ ProcessResult::explainProcess( const QObject* parent, int ec, const QString& com if ( ec == 0 ) return JobResult::ok(); + QString outputMessage = output.isEmpty() ? QStringLiteral("\nThere was no output from the command.") + : (parent->tr("\nOutput:\n") + output); + if ( ec == -1 ) //Crash! - return JobResult::error( parent->tr( "External command crashed" ), - parent->tr( "Command %1 crashed.\nOutput:\n%2" ) + return JobResult::error( parent->tr( "External command crashed." ), + parent->tr( "Command %1 crashed." ) .arg( command ) - .arg( output ) ); + + outputMessage ); if ( ec == -2 ) - return JobResult::error( parent->tr( "External command failed to start" ), - parent->tr( "Command %1 failed to start." ) + return JobResult::error( parent->tr( "External command failed to start." ), + parent->tr( "Command %1 failed to start." ) .arg( command ) ); if ( ec == -3 ) - return JobResult::error( parent->tr( "Internal error when starting command" ), + return JobResult::error( parent->tr( "Internal error when starting command." ), parent->tr( "Bad parameters for process job call." ) ); if ( ec == -4 ) - return JobResult::error( parent->tr( "External command failed to finish" ), - parent->tr( "Command %1 failed to finish in %2s.\nOutput:\n%3" ) + return JobResult::error( parent->tr( "External command failed to finish." ), + parent->tr( "Command %1 failed to finish in %2 seconds." ) .arg( command ) .arg( timeout ) - .arg( output ) ); + + outputMessage ); //Any other exit code - return JobResult::error( parent->tr( "External command finished with errors" ), - parent->tr( "Command %1 finished with exit code %2.\nOutput:\n%3" ) + return JobResult::error( parent->tr( "External command finished with errors." ), + parent->tr( "Command %1 finished with exit code %2." ) .arg( command ) .arg( ec ) - .arg( output ) ); + + outputMessage ); } } // namespace diff --git a/src/modules/shellprocess/ShellProcessJob.cpp b/src/modules/shellprocess/ShellProcessJob.cpp index bc1d8da13..4e252ae76 100644 --- a/src/modules/shellprocess/ShellProcessJob.cpp +++ b/src/modules/shellprocess/ShellProcessJob.cpp @@ -104,7 +104,7 @@ ShellProcessJob::exec() if ( suppress_result ) cDebug() << "Error code" << r.getExitCode() << "ignored by ShellProcess configuration."; else - return Calamares::JobResult::error( tr( "Could not run command." ), r.getOutput() ); + return r.explainProcess( this, processed_cmd, 10 ); } }