Blame src/util/krb5-mark-cstyle.py

Packit fd8b60
from optparse import OptionParser
Packit fd8b60
import os
Packit fd8b60
import re
Packit fd8b60
import sys
Packit fd8b60
Packit fd8b60
styles = {
Packit fd8b60
    "bsd":
Packit fd8b60
        "/* -*- mode: c; c-file-style: \"bsd\"; indent-tabs-mode: t -*- */\n",
Packit fd8b60
    "krb5":
Packit fd8b60
        "/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */\n"
Packit fd8b60
    }
Packit fd8b60
Packit fd8b60
def dofile(fname, style):
Packit fd8b60
    changed = False
Packit fd8b60
    newname = fname + ".new"
Packit fd8b60
    infile = open(fname)
Packit fd8b60
    outfile = open(newname, "w")
Packit fd8b60
    first = next(infile)
Packit fd8b60
    if (first != style):
Packit fd8b60
        changed = True
Packit fd8b60
        outfile.write(style)
Packit fd8b60
        if re.match(r"""\s*/\*\s*-\*-.*-\*-\s*\*/""", first):
Packit fd8b60
            # Replace first line if it was already a local variables line.
Packit fd8b60
            pass
Packit fd8b60
        else:
Packit fd8b60
            outfile.write(first)
Packit fd8b60
Packit fd8b60
        # Simply copy remaining lines.
Packit fd8b60
        for line in infile:
Packit fd8b60
            outfile.write(line)
Packit fd8b60
Packit fd8b60
    infile.close()
Packit fd8b60
    outfile.close()
Packit fd8b60
Packit fd8b60
    if changed:
Packit fd8b60
        os.rename(newname, fname)
Packit fd8b60
    else:
Packit fd8b60
        os.remove(newname)
Packit fd8b60
Packit fd8b60
parser = OptionParser()
Packit fd8b60
parser.add_option("--cstyle", action="store", dest="style",
Packit fd8b60
                  choices=("bsd", "krb5"), default="krb5")
Packit fd8b60
(options, args) = parser.parse_args()
Packit fd8b60
Packit fd8b60
for fname in args:
Packit fd8b60
    print(fname)
Packit fd8b60
    dofile(fname, styles[options.style])