[users] Use Calamares command-running API

This commit is contained in:
Adriaan de Groot 2024-04-14 22:15:13 +02:00
parent dfe07a51a3
commit 51e05241fe

View File

@ -66,27 +66,20 @@ ActiveDirectoryJob::exec()
}
const QString installPath = Calamares::System::instance()->targetPath( QStringLiteral( "/" ) );
QStringList args = { "join", m_domain, "-U", m_adminLogin, "--install=" + installPath, "--verbose" };
auto r = Calamares::System::instance()->runCommand(
Calamares::System::RunLocation::RunInHost,
{ "realm", "join", m_domain, "-U", m_adminLogin, "--install=" + installPath, "--verbose" },
QString(),
m_adminPassword,
std::chrono::seconds( 30 ) );
QProcess process;
process.start( "realm", args );
process.waitForStarted();
if ( !m_adminPassword.isEmpty() )
{
process.write( ( m_adminPassword + "\n" ).toUtf8() );
process.closeWriteChannel();
}
process.waitForFinished( -1 );
if ( process.exitCode() == 0 )
if ( r.getExitCode() == 0 )
{
return Calamares::JobResult::ok();
}
else
{
QString errorOutput = process.readAllStandardError();
return Calamares::JobResult::error( QString( "Failed to join realm: %1" ).arg( errorOutput ) );
return Calamares::JobResult::error( QString( "Failed to join realm: %1" ).arg( r.getOutput() ) );
}
}