7 abspath = os.path.abspath(__file__)
8 dname = os.path.join(os.path.dirname(abspath),
"..",
"..")
14space_based_indent_sizes = {
25 with open(
".gitattributes",
"r")
as f:
26 lines = f.read().splitlines()
28 new_contents =
"""root = true
35 if line.startswith(
"#")
or len(line) == 0:
37 name, git_rules = line.split()
38 if git_rules ==
"-whitespace":
40 "indent_style = unset",
41 "indent_size = unset",
42 "trim_trailing_whitespace = unset",
43 "insert_final_newline = unset",
45 elif git_rules.startswith(
"whitespace="):
46 git_whitespace_rules = git_rules.replace(
"whitespace=",
"").split(
",")
48 if "-blank-at-eol" in git_whitespace_rules:
49 rules += [
"trim_trailing_whitespace = unset"]
51 rules += [
"trim_trailing_whitespace = true"]
53 if "-blank-at-eof" in git_whitespace_rules:
54 rules += [
"insert_final_newline = unset"]
56 rules += [
"insert_final_newline = true"]
58 if "tab-in-indent" in git_whitespace_rules:
59 rules += [
"indent_style = space"]
60 elif "indent-with-non-tab" in git_whitespace_rules:
61 rules += [
"indent_style = tab"]
62 elif name
in [
"*.pl",
"*.pm"]:
69 rules += [
"indent_style = tab"]
71 rules += [
"indent_style = unset"]
74 for rule
in git_whitespace_rules:
75 if rule.startswith(
"tabwidth="):
76 tab_width = rule.replace(
"tabwidth=",
"")
77 rules += [f
"tab_width = {tab_width}"]
79 if name
in space_based_indent_sizes:
80 indent_size = space_based_indent_sizes[name]
81 rules += [f
"indent_size = {indent_size}"]
86 rules =
"\n".join(rules)
87 new_contents += f
"\n[{name}]\n{rules}\n"
89 with open(
".editorconfig",
"w")
as f:
93if __name__ ==
"__main__":