diff options
-rw-r--r-- | src/plugins/remotelinux/linuxdevice.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 7fd2ef51db3..b446de70793 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -378,21 +378,17 @@ Environment LinuxDevicePrivate::getEnvironment() if (m_disconnected()) return {}; - const bool sourceProfile = q->extraData(Constants::SourceProfile).toBool(); - - CommandLine cmd; - if (sourceProfile) { - cmd.setExecutable(q->filePath("sh")); - cmd.addArgs({"-c", ". /etc/profile ; . ~/.profile ; env"}); - } else { - cmd.setExecutable(q->filePath("env")); - } - Process getEnvProc; - getEnvProc.setCommand(cmd); + getEnvProc.setCommand({q->filePath("env"), {}}); using namespace std::chrono; getEnvProc.runBlocking(5s); + if (getEnvProc.result() != ProcessResult::FinishedWithSuccess) { + qCWarning(linuxDeviceLog) << "Failed to get environment variables from device:" + << getEnvProc.exitMessage() << getEnvProc.allOutput(); + return {}; + } + const QString remoteOutput = getEnvProc.cleanedStdOut(); m_environmentCache = Environment(remoteOutput.split('\n', Qt::SkipEmptyParts), q->osType()); return m_environmentCache.value(); |