|
1 | 1 | function [OS, generatedBy] = getEnvInfo(opt) |
2 | 2 | % |
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. |
5 | 5 | % |
6 | 6 | % USAGE:: |
7 | 7 | % |
|
12 | 12 | % |
13 | 13 | % (C) Copyright 2020 CPP_SPM developers |
14 | 14 |
|
| 15 | + if nargin < 1 |
| 16 | + opt.verbosity = 2; |
| 17 | + opt.dryRun = false; |
| 18 | + end |
| 19 | + |
15 | 20 | generatedBy(1).name = 'CPP SPM'; |
16 | 21 | generatedBy(1).Version = getVersion(); |
17 | 22 | generatedBy(1).Description = ''; |
|
44 | 49 | OS.name = strtrim(ProductName{2}); |
45 | 50 | OS.version = strtrim(ProductVersion{2}); |
46 | 51 |
|
47 | | - else |
48 | | - % for windows: winver |
49 | | - % [~, result] = system('winver'); |
| 52 | + elseif ismember(OS.name, 'PCWIN64') |
50 | 53 |
|
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); |
53 | 59 |
|
54 | 60 | end |
55 | 61 |
|
|
63 | 69 | return |
64 | 70 | end |
65 | 71 |
|
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 |
86 | 83 | end |
87 | | - catch |
88 | | - errorHandling(mfilename(), 'envUnknown', 'Could not get env info.', true, opt.verbosity); |
| 84 | + |
| 85 | + OS.environmentVariables.(keyname) = vals{i}; |
| 86 | + |
89 | 87 | end |
90 | 88 |
|
91 | 89 | end |
|
105 | 103 | vals = cell(map.values.toArray()); |
106 | 104 | case 'system' |
107 | 105 | if ispc() |
108 | | - % cmd = 'set "'; %HACK for hidden variables |
109 | 106 | cmd = 'set'; |
110 | 107 | else |
111 | 108 | cmd = 'env'; |
|
0 commit comments