1using("stdio", "stdsys", "stdstr", "stdtype", "stdfile", "stdmeta");
3fn getDocCmd(part: string, type: int) -> string {
7 sb_append(sb, "C:/Program%20Files/Phasor%20Programming%20Language/man/man");
15 var path = sb_to_string(sb);
17 return concat("\"start file:///", concat(path, "\""));
18 } else if (os == "Linux" || os == "FreeBSD" || os == "UNIX" || os == "Darwin") {
22 var args = sb_to_string(sb);
24 return concat("man ", args);
26 putf_error("Could not find documentation for %s(%d) on %s", part, type, os);
28 return "cd ."; // noop if somehow reached
32fn showHelp(programName: string, exitCode: int) -> void {
33 var winStr = "C:\\Program Files\\Phasor Programming Language\\man\\man<section>\n \<page>.<section>.pdf";
34 var unixStr = "/usr/share/man/man<section>/<page>.<section>(.gz)";
35 var osxStr = "/usr/local/share/man/man<section>/<page>.<section>(.gz)";
40 } else if (os == "Linux" || os == "FreeBSD" || os == "UNIX") {
42 } else if (os == "Darwin") {
45 osStr = "https://phasor-docs.pages.dev/man?f=<page>.<section>";
50PHASOR-HELP(1) Phasor %s PHASOR-HELP(1)
53 %s - open Phasor manual pages
62 The name of the manual page to open.
65 The manual section number. This is an integer corresponding to
66 standard manual sections.
70 Open the section 1 manual page for "phasor".
73 Open the section 5 manual page for "phsb".
76 Open the section 3 manual page for "phasorstd_io".
85`, phs_version(), programName, programName, programName, programName, programName, programName, programName, osStr);
86 if (exitCode == 0) puts(helpStr);
87 else puts_error(helpStr);
92 if (sys_argc() == 3) {
93 var page = to_string(sys_argv(1));
94 var section = to_int(sys_argv(2));
95 sys_shell(getDocCmd(page, section));
97 showHelp(fstem(sys_argv(0)), 1);