diff --git a/src/calculateconfig.cpp b/src/calculateconfig.cpp index 41acd62..d40c9c0 100644 --- a/src/calculateconfig.cpp +++ b/src/calculateconfig.cpp @@ -152,6 +152,13 @@ void CalculateConfig::setValue ( const QString& key, const QVariant& value ) } void CalculateConfig::showInstallParameters() +{ + QStringList params = getInstallParameters(); + + emit sendParameters(params); +} + +QStringList CalculateConfig::getInstallParameters() { QStringList params; @@ -159,7 +166,11 @@ void CalculateConfig::showInstallParameters() if ( m_Config["--disk"].toStringList().count() > 0 ) { foreach(const QString& disk, m_Config["--disk"].toStringList()) - params << QString("--disk ") + disk; + { + QString disk_t(disk); + disk_t.replace(" ", ""); + params << QString("--disk ") + disk_t; + } } if ( !m_Config["--swap"].toString().isEmpty() ) @@ -167,43 +178,42 @@ void CalculateConfig::showInstallParameters() // mbr if ( !m_Config["gui_os_device_dev"].toString().isEmpty() ) - params << QString("--mbr ") + m_Config["gui_os_device_dev"].toString(); + params << QString("--mbr /dev/") + m_Config["gui_os_device_dev"].toString(); // config if ( !m_Config["os_install_net_hostname"].toString().isEmpty() ) - params << "--set " << "os_install_net_hostname = " << m_Config["os_install_net_hostname"].toString(); + params << "--set os_install_net_hostname=" + m_Config["os_install_net_hostname"].toString(); if ( !m_Config["os_install_net_domain"].toString().isEmpty() ) - params << "--set " << "os_install_net_domain = " << m_Config["os_install_net_domain"].toString(); + params << "--set os_install_net_domain=" + m_Config["os_install_net_domain"].toString(); if ( !m_Config["os_install_clock_timezone"].toString().isEmpty() ) - params << "--set " << "os_install_clock_timezone = " << m_Config["os_install_clock_timezone"].toString(); + params << "--set os_install_clock_timezone=" + m_Config["os_install_clock_timezone"].toString(); if ( !m_Config["os_install_x11_video_drv"].toString().isEmpty() ) - params << "--set " << "os_install_x11_video_drv = " << m_Config["os_install_x11_video_drv"].toString(); + params << "--set os_install_x11_video_drv=" + m_Config["os_install_x11_video_drv"].toString(); if ( !m_Config["os_install_x11_composite"].toString().isEmpty() ) - params << "--set " << "os_install_x11_composite = " << m_Config["os_install_x11_composite"].toString(); + params << "--set os_install_x11_composite=" + m_Config["os_install_x11_composite"].toString(); if ( m_Config["gui_expert_mode"].toString() == "on" ) { if ( !m_Config["os_install_makeopts"].toString().isEmpty() ) - params << "--set " << "os_install_makeopts = " << m_Config["os_install_makeopts"].toString(); + params << "--set os_install_makeopts=" + m_Config["os_install_makeopts"].toString(); if ( !m_Config["os_install_proxy"].toString().isEmpty() ) - params << "--set " << "os_install_proxy = " << m_Config["os_install_proxy"].toString(); + params << "--set os_install_proxy=" + m_Config["os_install_proxy"].toString(); if ( !m_Config["os_install_ntp"].toString().isEmpty() ) - params << "--set " << "os_install_ntp = " << m_Config["os_install_ntp"].toString(); + params << "--set os_install_ntp=" + m_Config["os_install_ntp"].toString(); if ( !m_Config["os_install_clock_type"].toString().isEmpty() ) - params << "--set " << "os_install_clock_type = " << m_Config["os_install_clock_type"].toString(); + params << "--set os_install_clock_type=" + m_Config["os_install_clock_type"].toString(); } // lang if ( !m_Config["gui_install_language"].toString().isEmpty() ) - params << "--lang " << m_Config["gui_install_language"].toString(); + params << "--lang " + m_Config["gui_install_language"].toString(); - - emit sendParameters(params); + return params; } diff --git a/src/calculateconfig.h b/src/calculateconfig.h index 3bff932..f359b4d 100644 --- a/src/calculateconfig.h +++ b/src/calculateconfig.h @@ -22,6 +22,7 @@ public: void setValue(const QString& key, const QVariant& value); void showInstallParameters(); + QStringList getInstallParameters(); signals: void sendParameters(QStringList); diff --git a/src/pageinstall.cpp b/src/pageinstall.cpp index 57f65a7..36bcec1 100644 --- a/src/pageinstall.cpp +++ b/src/pageinstall.cpp @@ -8,6 +8,8 @@ #include #include +#include "calculateconfig.h" + PageInstall::PageInstall() : InstallerPage(), m_clProc(0) @@ -56,36 +58,22 @@ void PageInstall::show() { m_clProc = new QProcess(this); -#ifndef NO_INSTALL connect( m_clProc, SIGNAL(error(QProcess::ProcessError)), this, SLOT(onError(QProcess::ProcessError)) ); connect( m_clProc, SIGNAL(readyReadStandardOutput()), this, SLOT(showStdOut()) ); connect( m_clProc, SIGNAL(readyReadStandardError()), this, SLOT(showStdErr()) ); connect( m_clProc, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(onFinish(int,QProcess::ExitStatus)) ); - QStringList args; - - args << "--force"; - - if (m_Settings->builder) - args << "--build"; - - args << QString("--disk=%1").arg(m_Settings->disk); - args << QString("--set-hostname=%1").arg(m_Settings->host); - args << QString("--set-format=%1").arg(m_Settings->fs); - args << QString("--set-lang=%1").arg(m_Settings->language); - args << QString("--set-timezone=%1").arg(m_Settings->timezone); - - args << QString("--set-erase=%1").arg( m_Settings->erase ? "yes" : "no" ); - args << QString("--set-mbr=%1").arg( m_Settings->mbr ? "yes" : "no" ); - args << QString("--set-uuid=%1").arg( m_Settings->uuid ? "yes" : "no" ); - - args << QString("--set-type=%1").arg( m_Settings->disktype ); - args << QString("--set-video_drv=%1").arg( m_Settings->videodrv ); - - m_clProc->start("calculate", args); -#else - onFinish(0, QProcess::NormalExit); -#endif + QStringList args = CalculateConfig::instance()->getInstallParameters(); + + qDebug() << "Start: cl-install "; + + foreach(const QString& arg, args) + qDebug() << arg; + + m_clProc->setStandardErrorFile("/home/guest/cl-install-gui-err.log"); + //m_clProc->setStandardOutputFile("/home/guest/cl-install-gui-out.log"); + + m_clProc->start( "cl-install -f --color never " + args.join(" ") ); } } @@ -101,11 +89,11 @@ void PageInstall::showStdOut() { // debug QString str = m_clProc->readAllStandardOutput(); -/* + QFile debug("/tmp/cl-install-gui_stdout.txt"); - if ( debug.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered) ) + if ( debug.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered | QIODevice::Text) ) debug.write(str.toLocal8Bit()); -*/ + m_Output->insertPlainText( str ); m_Output->moveCursor(QTextCursor::EndOfBlock); } @@ -119,11 +107,11 @@ void PageInstall::showStdErr() if (m_clProc) { QString str = m_clProc->readAllStandardError(); -/* + QFile debug("/tmp/cl-install-gui_stderr.txt"); - if ( debug.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered) ) + if ( debug.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered | QIODevice::Text) ) debug.write(str.toLocal8Bit()); -*/ +/* if ( str.contains("eta:") ) { QRegExp eta_regexp("\\b(\\d{1,2}:\\d{1,2}:\\d{1,2})\\b"); @@ -141,13 +129,14 @@ void PageInstall::showStdErr() if ( !progress.isEmpty() ) m_Progress->setValue( progress.toInt() ); } +*/ } } void PageInstall::onFinish(int exitCode, QProcess::ExitStatus exitStatus) { - qDebug() << "install onFinish()"; + qDebug() << "install onFinish() " << exitCode; emit changeNext(true); emit changePrev(true); @@ -157,6 +146,18 @@ void PageInstall::onFinish(int exitCode, QProcess::ExitStatus exitStatus) // instalation complete emit changePrev(false); } + else + { + m_Output->insertPlainText("Error: "); + + QString str = m_clProc->readAllStandardOutput(); + QString strErr = m_clProc->readAllStandardError(); + + m_Output->insertPlainText( str ); + m_Output->moveCursor(QTextCursor::EndOfBlock); + m_Output->insertPlainText( strErr ); + m_Output->moveCursor(QTextCursor::EndOfBlock); + } m_Progress->setValue(100); m_LabelEta->setText( tr("Eta: 0:00:00") );