Attached is the CLI code tarball. It is documented at http://test.kernel.org/autotest/CLIHowTo

From: jmeurin@google.com



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1950 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/cli/site_readme.py b/cli/site_readme.py
new file mode 100755
index 0000000..3abbe2b
--- /dev/null
+++ b/cli/site_readme.py
@@ -0,0 +1,50 @@
+#
+# Copyright 2008 Google Inc. All Rights Reserved.
+
+"""
+If you need to change the default behavior of some atest commands, you
+can create a site_<topic>.py file to subclass some of the classes from
+<topic>.py.
+
+The following example would prevent the creation of platform labels.
+"""
+
+import inspect, new, sys
+
+from autotest_lib.cli import topic_common, label
+
+
+class site_label(label.label):
+    pass
+
+
+class site_label_create(label.label_create):
+    """Disable the platform option
+    atest label create <labels>|--blist <file>"""
+    def __init__(self):
+        super(site_label_create, self).__init__()
+        self.parser.remove_option("--platform")
+
+
+    def parse(self):
+        (options, leftover) = super(site_label_create, self).parse()
+        self.is_platform = False
+        return (options, leftover)
+
+
+# The following boiler plate code should be added at the end to create
+# all the other site_<topic>_<action> classes that do not modify their
+# <topic>_<action> super class.
+
+# Any classes we don't override in label should be copied automatically
+for cls in [getattr(label, n) for n in dir(label) if not n.startswith("_")]:
+    if not inspect.isclass(cls):
+        continue
+    cls_name = cls.__name__
+    site_cls_name = 'site_' + cls_name
+    if hasattr(sys.modules[__name__], site_cls_name):
+        continue
+    bases = (site_label, cls)
+    members = {'__doc__': cls.__doc__}
+    site_cls = new.classobj(site_cls_name, bases, members)
+    setattr(sys.modules[__name__], site_cls_name, site_cls)