summaryrefslogtreecommitdiffstats
path: root/src/b2qt-flashing-wizard/elevator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/b2qt-flashing-wizard/elevator.cpp')
-rw-r--r--src/b2qt-flashing-wizard/elevator.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/b2qt-flashing-wizard/elevator.cpp b/src/b2qt-flashing-wizard/elevator.cpp
new file mode 100644
index 0000000..f4e087a
--- /dev/null
+++ b/src/b2qt-flashing-wizard/elevator.cpp
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** 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 "elevator.h"
+
+#include <QFile>
+#include <QDebug>
+#include <QProcess>
+
+QStringList elevate()
+{
+ QStringList rc;
+
+ int trySudo = QProcess::execute("sudo", QStringList() << "-n" << "echo" << "foo");
+ if (trySudo == 0) {
+ qDebug() << "Sudo seems to work";
+ rc << "sudo" << "--";
+ return rc;
+ }
+
+ if (QFile::exists("/usr/bin/kdesu")) {
+ rc << "/usr/bin/kdesu" << "-u" << "root" << "-t" << "--noignorebutton" << "--"; // @ARGS
+ } else if (QFile::exists("/usr/bin/gksu")) {
+ rc << "/usr/bin/gksu" << "-m" << "message" << "-u" << "root" << "--"; // @ARGS
+// } else if (!QFile::exists("/usr/lib/ssh/x11-ssh-askpass")) {
+// // SUDO_ASKPASS = @askpass-tool;
+// qDebug() << "askpass";
+// rc << "sudo" << "-A" << "--"; // @ARGS
+ }
+ return rc;
+}
+