Phasor 2.2.0
Stack VM based Programming Language
Loading...
Searching...
No Matches
mv.phs
Go to the documentation of this file.
1// Port of 'mv' - move (rename) files for GNU.
2// 'mv' file moving 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 show_help() -> void {
23 puts("Usage: mv [OPTION]... SOURCE DEST");
24 puts("Rename SOURCE to DEST, or move SOURCE(s) into DEST directory.");
25 puts("");
26 puts("Options:");
27 puts(" -f, --force overwrite destination if it exists");
28 puts(" --help display this help and exit");
29 puts(" --version output version information and exit");
30}
31
32fn show_version() -> void {
33 puts("mv (Phasor coreutils) 0.1");
34 puts("License GPLv3+: GNU GPL version 3 or later");
35 puts("This is free software: you are free to change and redistribute it.");
36 puts("There is NO WARRANTY, to the extent permitted by law.");
37}
38
39fn main() -> int {
40 var argc = sys_argc();
41 if (argc < 3) {
42 putf("Usage: %s SOURCE DEST", sys_argv(0)); puts("");
43 puts("Move SOURCE to DEST.");
44 return 1;
45 }
46
47 var force = false;
48 var i = 1;
49
50 for (i = 1; i < argc - 2; i = i + 1) {
51 var arg = sys_argv(i);
52 if (arg == "-f" || arg == "--force") {
53 force = true;
54 } else if (arg == "--help") {
55 show_help();
56 return 0;
57 } else if (arg == "--version") {
58 show_version();
59 return 0;
60 }
61 }
62
63 var src = sys_argv(argc - 2);
64 var dest = sys_argv(argc - 1);
65
66 fmv(src, dest);
67 return 0;
68}
69
70shutdown(main());