Commit f248ef5f3f

Andrew Kelley <superjoe30@gmail.com>
2017-08-20 10:25:42
move zen of zig to a sub command
1 parent d9dd50d
Changed files (2)
src/main.cpp
@@ -27,6 +27,7 @@ static int usage(const char *arg0) {
         "  targets                      list available compilation targets\n"
         "  test [source]                create and run a test build\n"
         "  version                      print version number and exit\n"
+        "  zen                          print zen of zig and exit\n"
         "Compile Options:\n"
         "  --assembly [source]          add assembly file to build\n"
         "  --cache-dir [path]           override the cache directory\n"
@@ -79,6 +80,18 @@ static int usage(const char *arg0) {
     return EXIT_FAILURE;
 }
 
+static const char *ZIG_ZEN = "\n"
+" * Communicate intent precisely.\n"
+" * Edge cases matter.\n"
+" * Favor reading code over writing code.\n"
+" * Only one obvious way to do things.\n"
+" * Runtime crashes are better than bugs.\n"
+" * Compile errors are better than runtime crashes.\n"
+" * Minimize energy spent on coding style.\n"
+" * Incremental improvements.\n"
+" * Avoid local maximums.\n"
+" * Together we serve the end users.\n";
+
 static int print_target_list(FILE *f) {
     ZigTarget native;
     get_native_target(&native);
@@ -118,6 +131,7 @@ enum Cmd {
     CmdBuild,
     CmdTest,
     CmdVersion,
+    CmdZen,
     CmdParseH,
     CmdTargets,
 };
@@ -457,6 +471,8 @@ int main(int argc, char **argv) {
                 out_type = OutTypeLib;
             } else if (strcmp(arg, "version") == 0) {
                 cmd = CmdVersion;
+            } else if (strcmp(arg, "zen") == 0) {
+                cmd = CmdZen;
             } else if (strcmp(arg, "parseh") == 0) {
                 cmd = CmdParseH;
             } else if (strcmp(arg, "test") == 0) {
@@ -481,6 +497,7 @@ int main(int argc, char **argv) {
                     }
                     break;
                 case CmdVersion:
+                case CmdZen:
                 case CmdTargets:
                     fprintf(stderr, "Unexpected extra parameter: %s\n", arg);
                     return usage(arg0);
@@ -682,6 +699,9 @@ int main(int argc, char **argv) {
     case CmdVersion:
         printf("%s\n", ZIG_VERSION_STRING);
         return EXIT_SUCCESS;
+    case CmdZen:
+        printf("%s\n", ZIG_ZEN);
+        return EXIT_SUCCESS;
     case CmdTargets:
         return print_target_list(stdout);
     case CmdInvalid:
README.md
@@ -127,16 +127,3 @@ produced .gcov files.
  * [zig-mode](https://github.com/AndreaOrru/zig-mode) - Emacs integration
  * [zig.vim](https://github.com/zig-lang/zig.vim) - Vim configuration files
  * [vscode-zig](https://github.com/zig-lang/vscode-zig) - Visual Studio Code extension
-
-## The Zen of Zig
-
- * Communicate intent precisely.
- * Edge cases matter.
- * Favor reading code over writing code.
- * Only one obvious way to do things.
- * Runtime crashes are better than bugs.
- * Compile errors are better than runtime crashes.
- * Minimize energy spent on coding style.
- * Incremental improvements.
- * Avoid local maximums.
- * Together we serve the end users.