Remove ExternalCommand::waitFor.

This is no longer used with KAuth.
ExternalCommand::start now waits until command finishes.
This commit is contained in:
Andrius Štikonas 2018-07-21 21:19:31 +01:00
parent 1b39be28ee
commit 2579d04229
12 changed files with 25 additions and 62 deletions

View File

@ -167,12 +167,7 @@ bool fat12::updateUUID(Report& report, const QString& deviceNode) const
ExternalCommand cmd(report, QStringLiteral("dd"), { QStringLiteral("of=") + deviceNode , QStringLiteral("bs=1"), QStringLiteral("count=4"), QStringLiteral("seek=39") });
if (!cmd.write(QByteArray(uuid, sizeof(uuid))))
return false;
if (!cmd.start())
return false;
return cmd.waitFor(-1);
cmd.write(QByteArray(uuid, sizeof(uuid)));
return cmd.start();
}
}

View File

@ -59,12 +59,7 @@ bool fat32::updateUUID(Report& report, const QString& deviceNode) const
// HACK: replace this hack with fatlabel "-i" (dosfstools 4.2)
ExternalCommand cmd(report, QStringLiteral("dd"), { QStringLiteral("of=") + deviceNode, QStringLiteral("bs=1"), QStringLiteral("count=4"), QStringLiteral("seek=67") });
if (!cmd.write(QByteArray(uuid, sizeof(uuid))))
return false;
if (!cmd.start())
return false;
return cmd.waitFor(-1);
cmd.write(QByteArray(uuid, sizeof(uuid)));
return cmd.start();
}
}

View File

@ -96,7 +96,7 @@ qint64 jfs::readUsedCapacity(const QString& deviceNode) const
{
ExternalCommand cmd(QStringLiteral("jfs_debugfs"), QStringList() << deviceNode);
if (cmd.write(QByteArrayLiteral("dm")) && cmd.start() && cmd.waitFor()) {
if (cmd.write(QByteArrayLiteral("dm")) && cmd.start()) {
qint64 blockSize = -1;
QRegularExpression re(QStringLiteral("Block Size: (\\d+)"));
QRegularExpressionMatch reBlockSize = re.match(cmd.output());

View File

@ -131,8 +131,7 @@ bool luks::create(Report& report, const QString& deviceNode)
QStringLiteral("luksFormat"),
deviceNode });
if (!( createCmd.write(m_passphrase.toLocal8Bit() + '\n') &&
createCmd.start(-1) &&
createCmd.waitFor() && createCmd.exitCode() == 0))
createCmd.start(-1) && createCmd.exitCode() == 0))
{
return false;
}
@ -142,7 +141,7 @@ bool luks::create(Report& report, const QString& deviceNode)
deviceNode,
suggestedMapperName(deviceNode) });
if (!( openCmd.write(m_passphrase.toLocal8Bit() + '\n') && openCmd.start(-1) && openCmd.waitFor()))
if (!( openCmd.write(m_passphrase.toLocal8Bit() + '\n') && openCmd.start(-1)))
return false;
setPayloadSize();
@ -267,8 +266,7 @@ bool luks::cryptOpen(QWidget* parent, const QString& deviceNode)
suggestedMapperName(deviceNode) });
if (!( openCmd.write(passphrase.toLocal8Bit() + '\n') &&
openCmd.start(-1) &&
openCmd.waitFor() && openCmd.exitCode() == 0) )
openCmd.start(-1) && openCmd.exitCode() == 0) )
return false;
if (m_innerFs) {
@ -691,7 +689,7 @@ void luks::setPayloadSize()
bool luks::testPassphrase(const QString& deviceNode, const QString& passphrase) const {
ExternalCommand cmd(QStringLiteral("cryptsetup"), { QStringLiteral("open"), QStringLiteral("--tries"), QStringLiteral("1"), QStringLiteral("--test-passphrase"), deviceNode });
if (cmd.write(passphrase.toLocal8Bit() + '\n') && cmd.start(-1) && cmd.waitFor() && cmd.exitCode() == 0)
if (cmd.write(passphrase.toLocal8Bit() + '\n') && cmd.start(-1) && cmd.exitCode() == 0)
return true;
return false;

View File

@ -57,7 +57,7 @@ bool luks2::create(Report& report, const QString& deviceNode)
QStringLiteral("luksFormat"),
deviceNode });
if (!( createCmd.write(m_passphrase.toLocal8Bit() + '\n') &&
createCmd.start(-1) && createCmd.waitFor() && createCmd.exitCode() == 0))
createCmd.start(-1) && createCmd.exitCode() == 0))
{
return false;
}
@ -67,7 +67,7 @@ bool luks2::create(Report& report, const QString& deviceNode)
deviceNode,
suggestedMapperName(deviceNode) });
if (!( openCmd.write(m_passphrase.toLocal8Bit() + '\n') && openCmd.start(-1) && openCmd.waitFor()))
if (!( openCmd.write(m_passphrase.toLocal8Bit() + '\n') && openCmd.start(-1)))
return false;
setPayloadSize();
@ -99,8 +99,8 @@ bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength)
return false;
cryptResizeCmd.write(m_passphrase.toLocal8Bit() + '\n');
}
cryptResizeCmd.start(-1);
cryptResizeCmd.waitFor();
if (!cryptResizeCmd.start(-1))
return false;
if ( cryptResizeCmd.exitCode() == 0 )
return m_innerFs->resize(report, mapperName(), m_PayloadSize);
}
@ -115,8 +115,8 @@ bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength)
return false;
cryptResizeCmd.write(m_passphrase.toLocal8Bit() + '\n');
}
cryptResizeCmd.start(-1);
cryptResizeCmd.waitFor();
if (!cryptResizeCmd.start(-1))
return false;
if ( cryptResizeCmd.exitCode() == 0 )
return true;
}

View File

@ -195,7 +195,6 @@ bool ntfs::updateBootSector(Report& report, const QString& deviceNode) const
Log() << xi18nc("@info:progress", "Could not write new start sector to partition <filename>%1</filename> when trying to update the NTFS boot sector.", deviceNode);
return false;
}
cmd.waitFor(-1);
// Also update backup NTFS boot sector located at the end of the partition
// NOTE: this should fail if filesystem does not span the whole partition
@ -207,7 +206,6 @@ bool ntfs::updateBootSector(Report& report, const QString& deviceNode) const
Log() << xi18nc("@info:progress", "Could not write new start sector to partition <filename>%1</filename> when trying to update the NTFS boot sector.", deviceNode);
return false;
}
cmd2.waitFor(-1);
Log() << xi18nc("@info:progress", "Updated NTFS boot sector for partition <filename>%1</filename> successfully.", deviceNode);

View File

@ -113,15 +113,12 @@ bool ocfs2::create(Report& report, const QString& deviceNode)
{
ExternalCommand cmd(report, QStringLiteral("mkfs.ocfs2"), { deviceNode });
if (cmd.write("y\n"))
{
cmd.start();
cmd.waitFor(-1);
return cmd.exitCode() == 0;
}
else
cmd.write("y\n");
if (!cmd.start())
return false;
return cmd.exitCode() == 0;
}
bool ocfs2::resize(Report& report, const QString& deviceNode, qint64 length) const

View File

@ -162,7 +162,7 @@ bool reiserfs::resize(Report& report, const QString& deviceNode, qint64 length)
if (!cmd.start(-1))
return false;
return cmd.waitFor(-1) && (cmd.exitCode() == 0 || cmd.exitCode() == 256);
return cmd.exitCode() == 0 || cmd.exitCode() == 256;
}
bool reiserfs::resizeOnline(Report& report, const QString& deviceNode, const QString&, qint64 length) const

View File

@ -73,7 +73,7 @@ bool SfdiskDevice::createPartitionTable(Report& report, const PartitionTable& pt
ExternalCommand createCommand(report, QStringLiteral("sfdisk"), { m_device->deviceNode() } );
if ( createCommand.write(QByteArrayLiteral("label: ") + tableType +
QByteArrayLiteral("\nwrite\n")) && createCommand.start(-1) && createCommand.waitFor() ) {
QByteArrayLiteral("\nwrite\n")) && createCommand.start(-1) ) {
return createCommand.output().contains(QStringLiteral("Script header accepted."));
}

View File

@ -77,7 +77,7 @@ QString SfdiskPartitionTable::createPartition(Report& report, const Partition& p
ExternalCommand createCommand(report, QStringLiteral("sfdisk"), { QStringLiteral("--force"), QStringLiteral("--append"), partition.devicePath() } );
if ( createCommand.write(QByteArrayLiteral("start=") + QByteArray::number(partition.firstSector()) +
type +
QByteArrayLiteral(" size=") + QByteArray::number(partition.length()) + QByteArrayLiteral("\nwrite\n")) && createCommand.start(-1) && createCommand.waitFor() ) {
QByteArrayLiteral(" size=") + QByteArray::number(partition.length()) + QByteArrayLiteral("\nwrite\n")) && createCommand.start(-1) ) {
QRegularExpression re(QStringLiteral("Created a new partition (\\d+)"));
QRegularExpressionMatch rem = re.match(createCommand.output());
@ -110,7 +110,7 @@ bool SfdiskPartitionTable::updateGeometry(Report& report, const Partition& parti
if ( sfdiskCommand.write(QByteArrayLiteral("start=") + QByteArray::number(sectorStart) +
QByteArrayLiteral(" size=") + QByteArray::number(sectorEnd - sectorStart + 1) +
QByteArrayLiteral("\nY\n"))
&& sfdiskCommand.start(-1) && sfdiskCommand.waitFor() && sfdiskCommand.exitCode() == 0) {
&& sfdiskCommand.start(-1) && sfdiskCommand.exitCode() == 0) {
return true;
}

View File

@ -251,32 +251,13 @@ bool ExternalCommand::write(const QByteArray& input)
return true;
}
/** Waits for the external command to finish.
@param timeout timeout to wait until the process finishes.
@return true on success
*/
bool ExternalCommand::waitFor(int timeout)
{
// closeWriteChannel();
/*
if (!waitForFinished(timeout)) {
if (report())
report()->line() << xi18nc("@info:status", "(Command timeout while running)");
return false;
}*/
// onReadOutput();
Q_UNUSED(timeout)
return true;
}
/** Runs the command.
@param timeout timeout to use for waiting when starting and when waiting for the process to finish
@return true on success
*/
bool ExternalCommand::run(int timeout)
{
return start(timeout) && waitFor(timeout)/* && exitStatus() == 0*/;
return start(timeout) /* && exitStatus() == 0*/;
}
void ExternalCommand::onReadOutput()

View File

@ -88,7 +88,6 @@ public:
bool startCopyBlocks();
bool start(int timeout = 30000);
bool waitFor(int timeout = 30000);
bool run(int timeout = 30000);
/**< @return the exit code */