|
27 | 27 |
|
28 | 28 | function [status, msg] = subprocess_run(cmd, opt) |
29 | 29 | arguments |
30 | | - cmd {mustBeTextScalar} |
| 30 | + cmd (1,:) string |
31 | 31 | opt.env struct {mustBeScalarOrEmpty} = struct.empty |
32 | 32 | opt.cwd {mustBeTextScalar} = '' |
33 | 33 | opt.stdin {mustBeTextScalar} = '' |
34 | 34 | opt.stdout (1,1) logical = true |
35 | 35 | opt.stderr (1,1) logical = true |
36 | 36 | end |
37 | 37 |
|
38 | | -cmd = char(cmd); |
39 | 38 |
|
40 | 39 | if ~strempty(opt.cwd) |
41 | | - cmd = strjoin({'cd', char(opt.cwd), '&&', cmd}); |
| 40 | + cmd = join(["cd", opt.cwd, "&&", cmd]); |
42 | 41 | end |
43 | 42 |
|
44 | 43 | if ~strempty(opt.stdin) |
45 | | - cmd = strjoin({'echo', char(opt.stdin), '|', cmd}); |
| 44 | + cmd = join(["echo", opt.stdin, "|", cmd]); |
46 | 45 | end |
47 | 46 |
|
48 | 47 |
|
49 | 48 | if ~opt.stderr |
50 | 49 | if ispc |
51 | | - cmd = strjoin({cmd, '2> nul'}); |
| 50 | + cmd = join([cmd, "2> nul"]); |
52 | 51 | else |
53 | | - cmd = strjoin({cmd, '2> /dev/null'}); |
| 52 | + cmd = join([cmd, "2> /dev/null"]); |
54 | 53 | end |
55 | 54 | end |
56 | 55 |
|
57 | 56 | if ~opt.stdout |
58 | 57 | if ispc |
59 | | - cmd = strjoin({cmd, '> nul'}); |
| 58 | + cmd = join([cmd, "> nul"]); |
60 | 59 | else |
61 | | - cmd = strjoin({cmd, '> /dev/null'}); |
| 60 | + cmd = join([cmd, "> /dev/null"]); |
62 | 61 | end |
63 | 62 | end |
64 | 63 |
|
|
86 | 85 | inold = getenv("GFORTRAN_STDIN_UNIT"); |
87 | 86 | setenv("GFORTRAN_STDIN_UNIT", "5"); |
88 | 87 |
|
89 | | -[status, msg] = system(cmd, env_pairs{:}); |
| 88 | +[status, msg] = system(join(cmd), env_pairs{:}); |
90 | 89 |
|
91 | 90 | setenv("GFORTRAN_STDOUT_UNIT", outold); |
92 | 91 | setenv("GFORTRAN_STDERR_UNIT", errold); |
|
0 commit comments