class_docstr: API shim for ninja_syntax.Writer that instead runs the commands.
  
  Used to bootstrap Ninja from scratch.  In --bootstrap mode this
  class is used to execute all the commands to build an executable.
  It also proxies all calls to an underlying ninja_syntax.Writer, to
  behave like non-bootstrap mode.
class_docstr_tok: ["API","shim","for","ninja_syntax.Writer","that","instead","runs","the","commands",".","Used","to","bootstrap","Ninja","from","scratch",".","In","--","bootstrap","mode","this","class","is","used","to","execute","all","the","commands","to","build","an","executable",".","It","also","proxies","all","calls","to","an","underlying","ninja_syntax.Writer",",","to","behave","like","non-bootstrap","mode","."]
code: def rule(self, name, **kwargs):
      self.rules[name] = kwargs
      return self.writer.rule(name, **kwargs)
  
imports: from optparse import OptionParser
  import os
  import shlex
  import subprocess
  import sys
  import ninja_syntax
label_desc: Use image node_id 5 for calling the Bootstrap obj's underlying member method code with example usage: obj.rule(name) and returns: self