Browse Source

Add usage message for nobuild

rexim 2 years ago
parent
commit
9c70bddca9
1 changed files with 28 additions and 1 deletions
  1. 28 1
      nobuild.c

+ 28 - 1
nobuild.c

@@ -161,6 +161,27 @@ void build_all_vc_demos(void)
     }
     }
 }
 }
 
 
+void usage(const char *program)
+{
+    INFO("Usage: %s [<subcommand>]", program);
+    INFO("Subcommands:");
+    INFO("    tools");
+    INFO("        Build all the tools. Things like png2c, obj2c, etc.");
+    INFO("    assets");
+    INFO("        Build the assets in the assets/ folder.");
+    INFO("        Basically convert their data to C code so we can bake them in demos.");
+    INFO("    test[s] [<args>]");
+    INFO("        Build and run test.c");
+    INFO("        If <args> are provided the test utility is run with them.");
+    INFO("    demos [<platform>] [run]");
+    INFO("        Build demos.");
+    INFO("        Available platforms are: sdl, term, or wasm.");
+    INFO("        Optional [run] runs the demo after the build.");
+    INFO("        [run] is not available for wasm platform.");
+    INFO("    help");
+    INFO("         Print this message");
+}
+
 int main(int argc, char **argv)
 int main(int argc, char **argv)
 {
 {
     GO_REBUILD_URSELF(argc, argv);
     GO_REBUILD_URSELF(argc, argv);
@@ -173,7 +194,7 @@ int main(int argc, char **argv)
             build_tools();
             build_tools();
         } else if (strcmp(subcmd, "assets") == 0) {
         } else if (strcmp(subcmd, "assets") == 0) {
             build_assets();
             build_assets();
-        } else if (strcmp(subcmd, "tests") == 0) {
+        } else if (strcmp(subcmd, "tests") == 0 || strcmp(subcmd, "test") == 0) {
             build_tests();
             build_tests();
             if (argc > 0) {
             if (argc > 0) {
                 Cmd cmd = {0};
                 Cmd cmd = {0};
@@ -196,6 +217,7 @@ int main(int argc, char **argv)
                         if (argc > 0) {
                         if (argc > 0) {
                             const char *run = shift_args(&argc, &argv);
                             const char *run = shift_args(&argc, &argv);
                             if (strcmp(run, "run") != 0) {
                             if (strcmp(run, "run") != 0) {
+                                usage(program);
                                 PANIC("unknown action `%s` for SDL demo: %s", run, name);
                                 PANIC("unknown action `%s` for SDL demo: %s", run, name);
                             }
                             }
                             CMD(CONCAT("./build/demos/", name, ".sdl"));
                             CMD(CONCAT("./build/demos/", name, ".sdl"));
@@ -206,6 +228,7 @@ int main(int argc, char **argv)
                         if (argc > 0) {
                         if (argc > 0) {
                             const char *run = shift_args(&argc, &argv);
                             const char *run = shift_args(&argc, &argv);
                             if (strcmp(run, "run") != 0) {
                             if (strcmp(run, "run") != 0) {
+                                usage(program);
                                 PANIC("unknown action `%s` for Terminal demo: %s", run, name);
                                 PANIC("unknown action `%s` for Terminal demo: %s", run, name);
                             }
                             }
                             CMD(CONCAT("./build/demos/", name, ".term"));
                             CMD(CONCAT("./build/demos/", name, ".term"));
@@ -214,6 +237,7 @@ int main(int argc, char **argv)
                         pid_wait(build_wasm_demo(name));
                         pid_wait(build_wasm_demo(name));
                         copy_file(CONCAT("./build/demos/", name, ".wasm"), CONCAT("./wasm/", name, ".wasm"));
                         copy_file(CONCAT("./build/demos/", name, ".wasm"), CONCAT("./wasm/", name, ".wasm"));
                     } else {
                     } else {
+                        usage(program);
                         PANIC("unknown demo platform %s", platform);
                         PANIC("unknown demo platform %s", platform);
                     }
                     }
                 } else {
                 } else {
@@ -225,7 +249,10 @@ int main(int argc, char **argv)
             } else {
             } else {
                 build_all_vc_demos();
                 build_all_vc_demos();
             }
             }
+        } else if(strcmp(subcmd, "help") == 0) {
+            usage(program);
         } else {
         } else {
+            usage(program);
             PANIC("Unknown command `%s`", subcmd);
             PANIC("Unknown command `%s`", subcmd);
         }
         }
     } else {
     } else {