Phasor 2.2.0
Stack VM based Programming Language
Loading...
Searching...
No Matches
cp.phs
Go to the documentation of this file.
1// Port of 'cp' file copying (main routines).
2// 'cp' file copying program for Phasor.
3// Copyright (C) 2026 Daniel McGuire.
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <https://www.gnu.org/licenses/>.
17
18include_stdio();
19include_stdfile();
20include_stdsys();
21
22fn main() {
23 var argc = sys_argc();
24 if (argc < 3) {
25 putf("Usage: %s SOURCE DEST", sys_argv(0)); puts("");
26 puts("Copy SOURCE to DEST.");
27 puts("");
28 puts("-f, --overwrite overwrite destination if it exists");
29 return 0;
30 }
31
32 var ow = false;
33 var i = 1;
34
35 for (i = 1; i < argc; i = i + 1) {
36 var arg = sys_argv(i);
37 if (arg == "-f" || arg == "--overwrite") {
38 ow = true;
39 break;
40 }
41 }
42
43 var src = sys_argv(1);
44 var dest = sys_argv(2);
45
46 if (fcp(src, dest, ow) == null)
47 return 0;
48 else
49 return 1;
50}
51
52shutdown(main());