| ... | ... | @@ -27,6 +27,7 @@ static int usage(const char *arg0) { |
| 27 | 27 | " targets list available compilation targets\n" |
| 28 | 28 | " test [source] create and run a test build\n" |
| 29 | 29 | " version print version number and exit\n" |
| 30 | " zen print zen of zig and exit\n" |
| 30 | 31 | "Compile Options:\n" |
| 31 | 32 | " --assembly [source] add assembly file to build\n" |
| 32 | 33 | " --cache-dir [path] override the cache directory\n" |
| ... | ... | @@ -79,6 +80,18 @@ static int usage(const char *arg0) { |
| 79 | 80 | return EXIT_FAILURE; |
| 80 | 81 | } |
| 81 | 82 | |
| 83 | static const char *ZIG_ZEN = "\n" |
| 84 | " * Communicate intent precisely.\n" |
| 85 | " * Edge cases matter.\n" |
| 86 | " * Favor reading code over writing code.\n" |
| 87 | " * Only one obvious way to do things.\n" |
| 88 | " * Runtime crashes are better than bugs.\n" |
| 89 | " * Compile errors are better than runtime crashes.\n" |
| 90 | " * Minimize energy spent on coding style.\n" |
| 91 | " * Incremental improvements.\n" |
| 92 | " * Avoid local maximums.\n" |
| 93 | " * Together we serve the end users.\n"; |
| 94 | |
| 82 | 95 | static int print_target_list(FILE *f) { |
| 83 | 96 | ZigTarget native; |
| 84 | 97 | get_native_target(&native); |
| ... | ... | @@ -118,6 +131,7 @@ enum Cmd { |
| 118 | 131 | CmdBuild, |
| 119 | 132 | CmdTest, |
| 120 | 133 | CmdVersion, |
| 134 | CmdZen, |
| 121 | 135 | CmdParseH, |
| 122 | 136 | CmdTargets, |
| 123 | 137 | }; |
| ... | ... | @@ -457,6 +471,8 @@ int main(int argc, char **argv) { |
| 457 | 471 | out_type = OutTypeLib; |
| 458 | 472 | } else if (strcmp(arg, "version") == 0) { |
| 459 | 473 | cmd = CmdVersion; |
| 474 | } else if (strcmp(arg, "zen") == 0) { |
| 475 | cmd = CmdZen; |
| 460 | 476 | } else if (strcmp(arg, "parseh") == 0) { |
| 461 | 477 | cmd = CmdParseH; |
| 462 | 478 | } else if (strcmp(arg, "test") == 0) { |
| ... | ... | @@ -481,6 +497,7 @@ int main(int argc, char **argv) { |
| 481 | 497 | } |
| 482 | 498 | break; |
| 483 | 499 | case CmdVersion: |
| 500 | case CmdZen: |
| 484 | 501 | case CmdTargets: |
| 485 | 502 | fprintf(stderr, "Unexpected extra parameter: %s\n", arg); |
| 486 | 503 | return usage(arg0); |
| ... | ... | @@ -682,6 +699,9 @@ int main(int argc, char **argv) { |
| 682 | 699 | case CmdVersion: |
| 683 | 700 | printf("%s\n", ZIG_VERSION_STRING); |
| 684 | 701 | return EXIT_SUCCESS; |
| 702 | case CmdZen: |
| 703 | printf("%s\n", ZIG_ZEN); |
| 704 | return EXIT_SUCCESS; |
| 685 | 705 | case CmdTargets: |
| 686 | 706 | return print_target_list(stdout); |
| 687 | 707 | case CmdInvalid: |