aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/remotelinux/linuxdevice.cpp18
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();