mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: [PATCH 2/5] Documentation: gen_commands.py: align whitespace with coding style
Date: Fri, 24 Oct 2025 11:07:03 +0200	[thread overview]
Message-ID: <20251024090708.2476109-2-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20251024090708.2476109-1-a.fatoum@pengutronix.de>

We use four spaces for indentation in python files and an extra empty
line before subroutine definition. This is the default enforced by pylsp
for example, so let's do this whitespace only change in preparation for
further work.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 Documentation/gen_commands.py | 297 +++++++++++++++++-----------------
 1 file changed, 149 insertions(+), 148 deletions(-)

diff --git a/Documentation/gen_commands.py b/Documentation/gen_commands.py
index 53fd59d8f692..8e129d6b253f 100755
--- a/Documentation/gen_commands.py
+++ b/Documentation/gen_commands.py
@@ -41,163 +41,164 @@ def string_escape(s):
 
 
 def parse_c(name):
-  cmd = None
-  last = None
-  for line in open(name, 'r'):
-    x = HELP_START.match(line)
-    if x:
-      cmd = CMDS.setdefault(x.group(1), defaultdict(list))
-      cmd.setdefault("files", set()).add(name)
-      continue
-    x = CMD_START.match(line)
-    if x:
-      cmd = CMDS.setdefault(x.group(1), defaultdict(list))
-      cmd.setdefault("files", set()).add(name)
-      continue
-    if cmd is None:
-      continue
-    x = HELP_TEXT.match(line)
-    if x:
-      if 'h_opts' not in cmd:
-        last = cmd['h_pre']
-      else:
-        last = cmd['h_post']
-      last.append(string_escape(x.group(1)).strip())
-      continue
-    x = HELP_OPT.match(line)
-    if x:
-      last = cmd['h_opts']
-      last.append([
-        string_escape(x.group(1)),
-        string_escape(x.group(2)),
-      ])
-      continue
-    x = CMD_FUNC.match(line)
-    if x:
-      last = cmd['c_func']
-      last.append(x.group(1))
-      continue
-    x = CMD_DESC.match(line)
-    if x:
-      last = cmd['c_desc']
-      last.append(string_escape(x.group(1)))
-      continue
-    x = CMD_OPTS.match(line)
-    if x:
-      last = cmd['c_opts']
-      last.append(string_escape_literal(x.group(1)))
-      continue
-    x = CMD_GROUP.match(line)
-    if x:
-      last = cmd['c_group']
-      last.append(x.group(1).split('_')[-1].lower())
-      continue
-    x = CONT.match(line)
-    if x:
-      if last is None:
-        raise Exception("Parse error in %s: %r" % (name, line))
-      if isinstance(last[-1], str):
-        last[-1] += string_escape(x.group(1))
-      elif isinstance(last[-1], list):
-        last[-1][1] += string_escape(x.group(1))
-      continue
-    x = HELP_END.match(line)
-    if x:
-      cmd = last = None
-    x = CMD_END.match(line)
-    if x:
-      cmd = last = None
+    cmd = None
+    last = None
+    for line in open(name, 'r'):
+        x = HELP_START.match(line)
+        if x:
+            cmd = CMDS.setdefault(x.group(1), defaultdict(list))
+            cmd.setdefault("files", set()).add(name)
+            continue
+        x = CMD_START.match(line)
+        if x:
+            cmd = CMDS.setdefault(x.group(1), defaultdict(list))
+            cmd.setdefault("files", set()).add(name)
+            continue
+        if cmd is None:
+            continue
+        x = HELP_TEXT.match(line)
+        if x:
+            if 'h_opts' not in cmd:
+                last = cmd['h_pre']
+            else:
+                last = cmd['h_post']
+            last.append(string_escape(x.group(1)).strip())
+            continue
+        x = HELP_OPT.match(line)
+        if x:
+            last = cmd['h_opts']
+            last.append([
+                string_escape(x.group(1)),
+                string_escape(x.group(2)),
+            ])
+            continue
+        x = CMD_FUNC.match(line)
+        if x:
+            last = cmd['c_func']
+            last.append(x.group(1))
+            continue
+        x = CMD_DESC.match(line)
+        if x:
+            last = cmd['c_desc']
+            last.append(string_escape(x.group(1)))
+            continue
+        x = CMD_OPTS.match(line)
+        if x:
+            last = cmd['c_opts']
+            last.append(string_escape_literal(x.group(1)))
+            continue
+        x = CMD_GROUP.match(line)
+        if x:
+            last = cmd['c_group']
+            last.append(x.group(1).split('_')[-1].lower())
+            continue
+        x = CONT.match(line)
+        if x:
+            if last is None:
+                raise Exception("Parse error in %s: %r" % (name, line))
+            if isinstance(last[-1], str):
+                last[-1] += string_escape(x.group(1))
+            elif isinstance(last[-1], list):
+                last[-1][1] += string_escape(x.group(1))
+            continue
+        x = HELP_END.match(line)
+        if x:
+            cmd = last = None
+        x = CMD_END.match(line)
+        if x:
+            cmd = last = None
+
 
 def gen_rst(name, cmd):
-  out = []
-  out.append('.. index:: %s (command)' % name)
-  out.append('')
-  out.append('.. _command_%s:' % name)
-  out.append('')
-  if 'c_desc' in cmd:
-    out.append("%s - %s" % (name, ''.join(cmd['c_desc']).strip()))
-  else:
-    out.append("%s" % (name,))
-  out.append('='*len(out[-1]))
-  out.append('')
-  if 'c_opts' in cmd:
-    out.append('Usage')
-    out.append('^'*len(out[-1]))
-    out.append('``%s %s``' % (name, ''.join(cmd['c_opts']).strip()))
+    out = []
+    out.append('.. index:: %s (command)' % name)
     out.append('')
-  if 'h_pre' in cmd:
-    pre = cmd['h_pre']
-    if pre and pre[-1] == "Options:":
-      del pre[-1]
-    if pre and pre[-1] == "":
-      del pre[-1]
-    if pre:
-      out.append('Synopsis')
-      out.append('^'*len(out[-1]))
-      out.append('\n'.join(cmd['h_pre']).strip())
-      out.append('')
-  if 'h_opts' in cmd:
-    out.append('Options')
-    out.append('^'*len(out[-1]))
-    for o, d in cmd['h_opts']:
-      o = o.strip()
-      d = d.strip()
-      if o:
-        out.append('%s\n %s' % (o, d))
-      else:
-        out.append(' %s' % (d,))
-      out.append('')
+    out.append('.. _command_%s:' % name)
     out.append('')
-  if 'h_post' in cmd:
-    post = cmd['h_post']
-    if post and post[0] == "":
-      del post[0]
-    if post:
-      out.append('Description')
-      out.append('^'*len(out[-1]))
-      out.append('\n'.join(cmd['h_post']).strip())
-      out.append('')
-  out.append('.. generated from: %s' % ', '.join(cmd['files']))
-  if 'c_func' in cmd:
-    out.append('.. command function: %s' % ', '.join(cmd['c_func']))
-  return '\n'.join(out)
+    if 'c_desc' in cmd:
+        out.append("%s - %s" % (name, ''.join(cmd['c_desc']).strip()))
+    else:
+        out.append("%s" % (name,))
+    out.append('=' * len(out[-1]))
+    out.append('')
+    if 'c_opts' in cmd:
+        out.append('Usage')
+        out.append('^' * len(out[-1]))
+        out.append('``%s %s``' % (name, ''.join(cmd['c_opts']).strip()))
+        out.append('')
+    if 'h_pre' in cmd:
+        pre = cmd['h_pre']
+        if pre and pre[-1] == "Options:":
+            del pre[-1]
+        if pre and pre[-1] == "":
+            del pre[-1]
+        if pre:
+            out.append('Synopsis')
+            out.append('^' * len(out[-1]))
+            out.append('\n'.join(cmd['h_pre']).strip())
+            out.append('')
+    if 'h_opts' in cmd:
+        out.append('Options')
+        out.append('^' * len(out[-1]))
+        for o, d in cmd['h_opts']:
+            o = o.strip()
+            d = d.strip()
+            if o:
+                out.append('%s\n %s' % (o, d))
+            else:
+                out.append(' %s' % (d,))
+            out.append('')
+        out.append('')
+    if 'h_post' in cmd:
+        post = cmd['h_post']
+        if post and post[0] == "":
+            del post[0]
+        if post:
+            out.append('Description')
+            out.append('^' * len(out[-1]))
+            out.append('\n'.join(cmd['h_post']).strip())
+            out.append('')
+    out.append('.. generated from: %s' % ', '.join(cmd['files']))
+    if 'c_func' in cmd:
+        out.append('.. command function: %s' % ', '.join(cmd['c_func']))
+    return '\n'.join(out)
 
 for root, dirs, files in os.walk(sys.argv[1]):
-  for name in files:
-    if name.endswith('.c'):
-      source = os.path.join(root, name)
-      parse_c(source)
+    for name in files:
+        if name.endswith('.c'):
+            source = os.path.join(root, name)
+            parse_c(source)
 
 for name in CMDS.keys():
-  CMDS[name] = dict(CMDS[name])
+    CMDS[name] = dict(CMDS[name])
 
 for name, cmd in CMDS.items():
-  #pprint({name: cmd})
-  rst = gen_rst(name, cmd)
-  group = cmd.get('c_group')
-  if group is None:
-    print("gen_commands: warning: using default group 'misc' for command '%s'" % name, file=sys.stderr)
-    group = ['misc']
-  subdir = os.path.join(sys.argv[2], group[0])
-  try:
-    os.makedirs(subdir)
-  except OSError as e:
-    if e.errno == errno.EEXIST and os.path.isdir(subdir):
-      pass
-    else:
-      raise
-  target = os.path.join(subdir, name+'.rst')
+    #pprint({name: cmd})
+    rst = gen_rst(name, cmd)
+    group = cmd.get('c_group')
+    if group is None:
+        print("gen_commands: warning: using default group 'misc' for command '%s'" % name, file=sys.stderr)
+        group = ['misc']
+    subdir = os.path.join(sys.argv[2], group[0])
+    try:
+        os.makedirs(subdir)
+    except OSError as e:
+        if e.errno == errno.EEXIST and os.path.isdir(subdir):
+            pass
+        else:
+            raise
+    target = os.path.join(subdir, name + '.rst')
 
-  # Only write the new rst if it differs from the old one. Wroto
-  hash_old = hashlib.sha1()
-  try:
-    f = open(target, 'rb')
-    hash_old.update(f.read())
-  except:
-    pass
-  hash_new = hashlib.sha1()
-  hash_new.update(rst.encode('utf-8'))
-  if hash_old.hexdigest() == hash_new.hexdigest():
-    continue
+    # Only write the new rst if it differs from the old one. Wroto
+    hash_old = hashlib.sha1()
+    try:
+        f = open(target, 'rb')
+        hash_old.update(f.read())
+    except:
+        pass
+    hash_new = hashlib.sha1()
+    hash_new.update(rst.encode('utf-8'))
+    if hash_old.hexdigest() == hash_new.hexdigest():
+        continue
 
-  open(target, 'w').write(rst)
+    open(target, 'w').write(rst)
-- 
2.47.3




  reply	other threads:[~2025-10-24  9:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-24  9:07 [PATCH 1/5] Documentation: gen_commands.py: escape special characters Ahmad Fatoum
2025-10-24  9:07 ` Ahmad Fatoum [this message]
2025-10-24  9:07 ` [PATCH 3/5] Documentation: gen_commands.py: rework if statements for compactness Ahmad Fatoum
2025-10-24  9:07 ` [PATCH 4/5] Documentation: gen_commands.py: use literal block for help text Ahmad Fatoum
2025-10-24  9:07 ` [PATCH 5/5] Documentation: gen_commands.py: escape name in title Ahmad Fatoum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251024090708.2476109-2-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox