Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 27 additions & 30 deletions src/infra/getEnvInfo.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function [OS, generatedBy] = getEnvInfo(opt)
%
% Gets information about the environement and operating system to help generate
% data descriptors for the derivatives.
% Gets information about the environement and operating system
% to help generate data descriptors for the derivatives.
%
% USAGE::
%
Expand All @@ -12,6 +12,11 @@
%
% (C) Copyright 2020 CPP_SPM developers

if nargin < 1
opt.verbosity = 2;
opt.dryRun = false;
end

generatedBy(1).name = 'CPP SPM';
generatedBy(1).Version = getVersion();
generatedBy(1).Description = '';
Expand Down Expand Up @@ -44,12 +49,13 @@
OS.name = strtrim(ProductName{2});
OS.version = strtrim(ProductVersion{2});

else
% for windows: winver
% [~, result] = system('winver');
elseif ismember(OS.name, 'PCWIN64')

OS.name = 'unknown OS';
OS.version = 'unknown version';
[~, ver] = system('ver');
tokens = regexp(ver, 'Version ', 'split');

OS.name = 'Microsoft Windows';
OS.version = tokens{2}(1:end - 2);

end

Expand All @@ -63,29 +69,21 @@
return
end

% if ispc()
% cmd = 'set';
% else
% cmd = 'env';
% end
% [~, OS.environmentVariables] = system(cmd);

try
[keys, vals] = getenvall('system');
for i = 1:numel(keys)
keyname = regexprep(keys{i}, '[=:;@]', '_');
keyname = regexprep(keyname, '^_*', '');
if ~ismember(keyname, {'_', ''})
if bids.internal.starts_with(keyname, 'LS_COLORS')
% to prevent annoying warnign when field names are too long.
OS.environmentVariables.LS_COLORS = vals{i};
else
OS.environmentVariables.(keyname) = vals{i};
end
end
[keys, vals] = getenvall('system');
for i = 1:numel(keys)

keyname = regexprep(keys{i}, '[^a-zA-Z_]', '_');
keyname = regexprep(keyname, '^_*', '');
if length(keyname) > 63
keyname = keyname(1:63);
end

if ismember(keyname, {'_', ''})
continue
end
catch
errorHandling(mfilename(), 'envUnknown', 'Could not get env info.', true, opt.verbosity);

OS.environmentVariables.(keyname) = vals{i};

end

end
Expand All @@ -105,7 +103,6 @@
vals = cell(map.values.toArray());
case 'system'
if ispc()
% cmd = 'set "'; %HACK for hidden variables
cmd = 'set';
else
cmd = 'env';
Expand Down