about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/installer/tools/nixos-option/nixos-option.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/nixos/modules/installer/tools/nixos-option/nixos-option.cc b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
index 58d66bad1c65..3261b263c2f2 100644
--- a/nixos/modules/installer/tools/nixos-option/nixos-option.cc
+++ b/nixos/modules/installer/tools/nixos-option/nixos-option.cc
@@ -402,6 +402,15 @@ void printAttr(Context & ctx, Out & out, const std::string & path, Value & root)
     }
 }
 
+bool has_example(Context & ctx, Value & option) {
+  try {
+      findAlongAttrPath(ctx.state, "example", ctx.autoArgs, option);
+      return true;
+  } catch (Error &) {
+      return false;
+  }
+}
+
 void printOption(Context & ctx, Out & out, const std::string & path, Value & option)
 {
     out << "Value:\n";
@@ -413,8 +422,10 @@ void printOption(Context & ctx, Out & out, const std::string & path, Value & opt
     out << "\n\nType:\n";
     printAttr(ctx, out, "type.description", option);
 
-    out << "\n\nExample:\n";
-    printAttr(ctx, out, "example", option);
+    if (has_example(ctx, option)) {
+        out << "\n\nExample:\n";
+        printAttr(ctx, out, "example", option);
+    }
 
     out << "\n\nDescription:\n";
     printAttr(ctx, out, "description", option);