Isis 3 Programmer Reference
Environment.cpp
1
6
/* SPDX-License-Identifier: CC0-1.0 */
7
#include "Environment.h"
8
9
#include <iostream>
10
#include <stdlib.h>
11
12
#include <QString>
13
#include <QStringList>
14
#include <QCoreApplication>
15
16
#include "IException.h"
17
#include "IString.h"
18
#include "TextFile.h"
19
24
static
void
QStartup() {
25
// Set the Qt plugin directory
26
QStringList
pluginPaths;
27
28
Isis::IString
root =
Isis::Environment::getEnvironmentValue
(
"ISISROOT"
,
""
);
29
QCoreApplication *core = QCoreApplication::instance();
30
if
( !core ) {
31
std::cout <<
"**** Qt Plugin Path is not set because no instance of QCoreApplication ****\n"
;
32
}
33
34
return
;
35
}
36
37
// Add this to ensure Qt is set up properly
38
Q_COREAPP_STARTUP_FUNCTION(QStartup);
39
40
namespace
Isis
{
41
42
43
Environment
Environment::automaticEnvironmentSetup
;
44
45
Environment::Environment() {
46
47
#if 0
48
// Set the Qt plugin directory
49
QStringList
pluginPaths;
50
51
IString root =
getEnvironmentValue
(
"ISISROOT"
,
""
);
52
std::cout <<
"ISISROOT="
<< root <<
"\n"
;
53
54
if
(root !=
""
) {
55
56
QCoreApplication *core = QCoreApplication::instance();
57
if
( !core ) {
58
std::cout <<
"QCoreApplication doesn't exist yet!\n"
;
59
}
60
IString thirdPartyPluginPath = root +
"/3rdParty/plugins"
;
61
pluginPaths << thirdPartyPluginPath.ToQt();
62
std::cout <<
"PluginPaths="
<< pluginPaths.join(
";"
) <<
"\n"
;
63
QCoreApplication::setLibraryPaths(pluginPaths);
64
}
65
#endif
66
}
67
68
72
QString
Environment::userName
() {
73
return
getEnvironmentValue
(
"USER"
,
"Unknown"
);
74
}
75
76
80
QString
Environment::hostName
() {
81
return
getEnvironmentValue
(
"HOST"
,
"Unknown"
);
82
}
83
84
92
QString
Environment::getEnvironmentValue
(QString variable,
93
QString defaultValue) {
94
95
QString value = defaultValue;
96
97
char
*envValue = getenv(variable.toLatin1().data());
98
if
(envValue)
99
value = envValue;
100
101
return
value;
102
}
103
104
108
QString
Environment::isisVersion
() {
109
TextFile
versionFile(
"$ISISROOT/version"
);
110
QString line1, line2, line3, line4;
111
versionFile.
GetLine
(line1);
112
versionFile.
GetLine
(line2);
113
versionFile.
GetLine
(line3);
114
versionFile.
GetLine
(line4);
115
116
QRegExp validPartOfLine(
"[^ #]*"
);
117
if
(validPartOfLine.indexIn(line1) != -1) {
118
line1 = validPartOfLine.cap();
119
}
120
else
{
121
IString
msg =
"$ISISROOT/version line 1, no valid text found"
;
122
throw
IException
(
IException::Programmer
, msg, _FILEINFO_);
123
}
124
125
if
(validPartOfLine.indexIn(line2) != -1) {
126
line2 = validPartOfLine.cap();
127
}
128
else
{
129
IString
msg =
"$ISISROOT/version line 2, no valid text found"
;
130
throw
IException
(
IException::Programmer
, msg, _FILEINFO_);
131
}
132
133
if
(validPartOfLine.indexIn(line4) != -1) {
134
line4 = validPartOfLine.cap();
135
}
136
else
{
137
IString
msg =
"$ISISROOT/version line 4, no valid text found"
;
138
throw
IException
(
IException::Programmer
, msg, _FILEINFO_);
139
}
140
141
return
line1 +
" "
+ line4 +
" | "
+ line2;
142
}
143
144
145
}
Isis::Environment::userName
static QString userName()
@Returns the user name.
Definition:
Environment.cpp:72
Isis::TextFile
Provides access to sequential ASCII stream I/O.
Definition:
TextFile.h:38
Isis::Environment::getEnvironmentValue
static QString getEnvironmentValue(QString, QString)
Definition:
Environment.cpp:92
Isis::TextFile::GetLine
bool GetLine(QString &line, const bool skipComments=true)
Gets next line from file.
Definition:
TextFile.cpp:411
Isis::Environment::automaticEnvironmentSetup
static Environment automaticEnvironmentSetup
Construct an environment in static space to initialize some global Isis environment options.
Definition:
Environment.h:55
QStringList
Isis::Environment::hostName
static QString hostName()
Definition:
Environment.cpp:80
Isis::IException
Isis exception class.
Definition:
IException.h:91
Isis::IException::Programmer
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition:
IException.h:146
Isis::IString
Adds specific functionality to C++ strings.
Definition:
IString.h:165
Isis::Environment::isisVersion
static QString isisVersion()
Definition:
Environment.cpp:108
Isis
This is free and unencumbered software released into the public domain.
Definition:
Apollo.h:16
src
base
objs
Environment
Environment.cpp