aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 51f8d17205..f69979a8a3 100644
--- a/src/main.cpp
+++ b/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: