Skip to content

Commit deebe5f

Browse files
authored
Merge pull request #631 from Remi-Gau/remi_fix_win_bug
[FIX] getEnvInfo for windows
2 parents 54aa4f6 + 85e5672 commit deebe5f

File tree

1 file changed

+27
-30
lines changed

1 file changed

+27
-30
lines changed

src/infra/getEnvInfo.m

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
function [OS, generatedBy] = getEnvInfo(opt)
22
%
3-
% Gets information about the environement and operating system to help generate
4-
% data descriptors for the derivatives.
3+
% Gets information about the environement and operating system
4+
% to help generate data descriptors for the derivatives.
55
%
66
% USAGE::
77
%
@@ -12,6 +12,11 @@
1212
%
1313
% (C) Copyright 2020 CPP_SPM developers
1414

15+
if nargin < 1
16+
opt.verbosity = 2;
17+
opt.dryRun = false;
18+
end
19+
1520
generatedBy(1).name = 'CPP SPM';
1621
generatedBy(1).Version = getVersion();
1722
generatedBy(1).Description = '';
@@ -44,12 +49,13 @@
4449
OS.name = strtrim(ProductName{2});
4550
OS.version = strtrim(ProductVersion{2});
4651

47-
else
48-
% for windows: winver
49-
% [~, result] = system('winver');
52+
elseif ismember(OS.name, 'PCWIN64')
5053

51-
OS.name = 'unknown OS';
52-
OS.version = 'unknown version';
54+
[~, ver] = system('ver');
55+
tokens = regexp(ver, 'Version ', 'split');
56+
57+
OS.name = 'Microsoft Windows';
58+
OS.version = tokens{2}(1:end - 2);
5359

5460
end
5561

@@ -63,29 +69,21 @@
6369
return
6470
end
6571

66-
% if ispc()
67-
% cmd = 'set';
68-
% else
69-
% cmd = 'env';
70-
% end
71-
% [~, OS.environmentVariables] = system(cmd);
72-
73-
try
74-
[keys, vals] = getenvall('system');
75-
for i = 1:numel(keys)
76-
keyname = regexprep(keys{i}, '[=:;@]', '_');
77-
keyname = regexprep(keyname, '^_*', '');
78-
if ~ismember(keyname, {'_', ''})
79-
if bids.internal.starts_with(keyname, 'LS_COLORS')
80-
% to prevent annoying warnign when field names are too long.
81-
OS.environmentVariables.LS_COLORS = vals{i};
82-
else
83-
OS.environmentVariables.(keyname) = vals{i};
84-
end
85-
end
72+
[keys, vals] = getenvall('system');
73+
for i = 1:numel(keys)
74+
75+
keyname = regexprep(keys{i}, '[^a-zA-Z_]', '_');
76+
keyname = regexprep(keyname, '^_*', '');
77+
if length(keyname) > 63
78+
keyname = keyname(1:63);
79+
end
80+
81+
if ismember(keyname, {'_', ''})
82+
continue
8683
end
87-
catch
88-
errorHandling(mfilename(), 'envUnknown', 'Could not get env info.', true, opt.verbosity);
84+
85+
OS.environmentVariables.(keyname) = vals{i};
86+
8987
end
9088

9189
end
@@ -105,7 +103,6 @@
105103
vals = cell(map.values.toArray());
106104
case 'system'
107105
if ispc()
108-
% cmd = 'set "'; %HACK for hidden variables
109106
cmd = 'set';
110107
else
111108
cmd = 'env';

0 commit comments

Comments
 (0)