|
2 | 2 | % optional: mex |
3 | 3 | % |
4 | 4 | %%% Inputs |
5 | | -% * path {mustBeTextScalar} |
6 | | -% * readable (1,1) int (-1 remove read permission, 0 no change, 1 add read permission) |
7 | | -% * writable (1,1) int (-1 remove write permission, 0 no change, 1 add write permission) |
8 | | -% * executable (1,1) int (-1 remove execute permission, 0 no change, 1 add execute permission) |
| 5 | +% * file |
| 6 | +% * readable (-1 remove read permission, 0 no change, 1 add read permission) |
| 7 | +% * writable (-1 remove write permission, 0 no change, 1 add write permission) |
| 8 | +% * executable (-1 remove execute permission, 0 no change, 1 add execute permission) |
9 | 9 | %%% Outputs |
10 | 10 | % * ok (1,1) logical |
11 | 11 |
|
12 | | -function ok = set_permissions(path, readable, writable, executable) |
| 12 | +function ok = set_permissions(file, readable, writable, executable) |
13 | 13 | arguments |
14 | | - path {mustBeTextScalar,mustBeFile} |
| 14 | + file {mustBeTextScalar} |
15 | 15 | readable (1,1) {mustBeInteger, mustBeInRange(readable, -1, 1)} |
16 | 16 | writable (1,1) {mustBeInteger, mustBeInRange(writable, -1, 1)} |
17 | 17 | executable (1,1) {mustBeInteger, mustBeInRange(executable, -1, 1)} |
18 | 18 | end |
19 | 19 |
|
| 20 | +ok = false; |
20 | 21 |
|
21 | | -if isMATLABReleaseOlderThan('R2025a') |
22 | | - warning("stdlib:set_permissions:RequiresMex", "set_permissions requires 'buildtool mex'"); |
23 | | - ok = false; |
24 | | -else |
25 | | - p = filePermissions(path); |
| 22 | +if ~stdlib.exists(file), return, end |
26 | 23 |
|
27 | | - if readable ~= 0 |
28 | | - setPermissions(p, "Readable", readable > 0); |
29 | | - end |
30 | | - if writable ~= 0 |
31 | | - setPermissions(p, "Writable", writable > 0); |
32 | | - end |
33 | | - if executable ~= 0 |
34 | | - setPermissions(p, "Executable", executable > 0); |
35 | | - end |
36 | 24 |
|
37 | | - ok = true; |
| 25 | +if isMATLABReleaseOlderThan('R2025a') |
| 26 | + ok = stdlib.native.set_permissions_legacy(file, readable, writable, executable); |
| 27 | +else |
| 28 | + ok = stdlib.native.set_permissions(file, readable, writable, executable); |
38 | 29 | end |
39 | 30 |
|
40 | 31 | end |
0 commit comments