Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/krb5/src/util/krb5-mark-cstyle.py
34878 views
1
from optparse import OptionParser
2
import os
3
import re
4
import sys
5
6
styles = {
7
"bsd":
8
"/* -*- mode: c; c-file-style: \"bsd\"; indent-tabs-mode: t -*- */\n",
9
"krb5":
10
"/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */\n"
11
}
12
13
def dofile(fname, style):
14
changed = False
15
newname = fname + ".new"
16
infile = open(fname)
17
outfile = open(newname, "w")
18
first = next(infile)
19
if (first != style):
20
changed = True
21
outfile.write(style)
22
if re.match(r"""\s*/\*\s*-\*-.*-\*-\s*\*/""", first):
23
# Replace first line if it was already a local variables line.
24
pass
25
else:
26
outfile.write(first)
27
28
# Simply copy remaining lines.
29
for line in infile:
30
outfile.write(line)
31
32
infile.close()
33
outfile.close()
34
35
if changed:
36
os.rename(newname, fname)
37
else:
38
os.remove(newname)
39
40
parser = OptionParser()
41
parser.add_option("--cstyle", action="store", dest="style",
42
choices=("bsd", "krb5"), default="krb5")
43
(options, args) = parser.parse_args()
44
45
for fname in args:
46
print(fname)
47
dofile(fname, styles[options.style])
48
49