code: def main_help_text(self, commands_only=False):
          
          if commands_only:
              usage = sorted(get_commands().keys())
          else:
              usage = [
                  "",
                  "Type '%s help <subcommand>' for help on a specific subcommand." % self.prog_name,
                  "",
                  "Available subcommands:",
              ]
              commands_dict = collections.defaultdict(lambda: [])
              for name, app in six.iteritems(get_commands()):
                  if app == 'pug.crawlnmine':
                      app = 'pug'
                  else:
                      app = app.rpartition('.')[-1]
                  commands_dict[app].append(name)
              style = color_style()
              for app in sorted(commands_dict.keys()):
                  usage.append("")
                  usage.append(style.NOTICE("[%s]" % app))
                  for name in sorted(commands_dict[app]):
                      usage.append("    %s" % name)
              # Output an extra note if settings are not properly configured
              if self.settings_exception is not None:
                  usage.append(style.NOTICE(
                      "Note that only Django core commands are listed "
                      "as settings are not properly configured (error: %s)."
                      % self.settings_exception))
  
          return '\n'.join(usage)
docs: Returns the script's main help text, as a string.