1using("stdio", "stdsys", "stdstr", "stdtype", "stdfile", "stdmeta", "stdmem");
3fn getDocCmd(part: string, type: int) -> string {
7 if (!fisdir("C:/Program Files/Phasor Programming Language/man/")) {
8 sb_append(sb, "https://phasor-docs.pages.dev/man?f=");
12 var path = sb_to_string(sb);
14 return concat("\"start ", path, "\"");
16 sb_append(sb, "C:/Program%20Files/Phasor%20Programming%20Language/man/man");
24 var path = sb_to_string(sb);
26 return concat("\"start file:///", path, "\"");
27 } else if (os == "Linux" || os == "FreeBSD" || os == "UNIX" || os == "Darwin") {
31 var args = sb_to_string(sb);
33 return concat("man ", args);
35 putf_error("Could not find documentation for %s(%d) on %s", part, type, os);
37 return "cd ."; // noop if somehow reached
41fn showHelp(programName: string, error: bool) -> void {
42 var winStr = "C:\\Program Files\\Phasor Programming Language\\man\\man<section>\n \<page>.<section>.pdf";
43 var unixStr = "/usr/share/man/man<section>/<page>.<section>(.gz)";
44 var osxStr = "/usr/local/share/man/man<section>/<page>.<section>(.gz)";
49 } else if (os == "Linux" || os == "FreeBSD" || os == "UNIX") {
51 } else if (os == "Darwin") {
54 osStr = "https://phasor-docs.pages.dev/man?f=<page>.<section>";
63PHASOR-HELP(1) Phasor %s PHASOR-HELP(1)
66 %s - open Phasor manual pages
75 The name of the manual page to open.
78 The manual section number. This is an integer corresponding to
79 standard manual sections.
83 Open the section 1 manual page for "phasor".
86 Open the section 1 manual page for "phasorvm".
89 Open the section 5 manual page for "phsb".
92 Open the section 3 manual page for "phasorstd_io".
101`, phs_version(), programName, programName, programName, programName, programName, programName, programName, programName, osStr);
102 if (error) puts_error(helpStr);
106fn main(args: array) -> int {
107 if (len(args) == 3) {
108 var page = to_string(args[1]);
109 var section = to_int(args[2]);
110 return sys_shell(getDocCmd(page, section));
111 } else if (len(args) == 2) {
112 var page = to_string(args[1]);
113 return sys_shell(getDocCmd(page, 1));
115 showHelp(fstem(args[0]), len(args) > 1);
120shutdown(main(sys_args()));