summaryrefslogtreecommitdiffstats
path: root/src/b2qt-flashing-wizard/common.cpp
diff options
context:
space:
mode:
authorRainer Keller <rainer.keller@digia.com>2014-11-06 13:56:23 +0100
committerRainer Keller <rainer.keller@theqtcompany.com>2014-11-06 15:27:37 +0200
commit34dda314cbb920ab85ce908c5f326d9a1491d070 (patch)
tree9a167c4caee09349635220045cc17862944b2a05 /src/b2qt-flashing-wizard/common.cpp
parentc428253ed91fa62c4ccb1ae676f58a4ba9821ca7 (diff)
Add b2qt-flashing-wizard
Change-Id: I2aec410a9c27b3d1f8df88b983e55cd3d890bdf2 Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com>
Diffstat (limited to 'src/b2qt-flashing-wizard/common.cpp')
-rw-r--r--src/b2qt-flashing-wizard/common.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/b2qt-flashing-wizard/common.cpp b/src/b2qt-flashing-wizard/common.cpp
new file mode 100644
index 0000000..bd95a3c
--- /dev/null
+++ b/src/b2qt-flashing-wizard/common.cpp
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use the contact form at
+** http://qt.digia.com/
+**
+** This file is part of Qt Enterprise Embedded.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** the contact form at http://qt.digia.com/
+**
+****************************************************************************/
+
+#include <QByteArray>
+#include <QFile>
+#include <QPair>
+#include <QDebug>
+
+QByteArray readAll(const QString &fileName)
+{
+ QByteArray rc;
+ QFile file(fileName);
+ if (!file.open(QFile::ReadOnly)) {
+ qWarning() << "Could not open file:" << fileName;
+ return rc;
+ }
+
+ rc = file.readAll();
+ file.close();
+ return rc;
+}
+
+
+static QList<QPair<QString, QString> > getMounts()
+{
+ QList<QPair<QString, QString> > rc;
+
+ QByteArray ba = readAll("/proc/mounts");
+ foreach (const QString &line, ba.split('\n')) {
+ if (line.isEmpty())
+ continue;
+
+ QStringList token = line.split(' ');
+ if (token.size() < 2) {
+ qWarning() << "Error parsing mounts:" << line;
+ continue;
+ }
+ rc.append(qMakePair(token[0], token[1]));
+ }
+ return rc;
+}
+
+bool checkForDeviceMounted(const QString &device, QString &mountPoint, QString &partition)
+{
+ QList<QPair<QString, QString> > mounts = getMounts();
+ if (mounts.isEmpty()) {
+ qWarning() << "No mounts found";
+ return false;
+ }
+
+ foreach (const auto &item, mounts) {
+ if (item.first.startsWith(device)) {
+ mountPoint = item.second;
+ partition = item.first;
+ return true;
+ }
+ }
+ mountPoint.clear();
+ partition.clear();
+ return false;
+}
+