|
124 | 124 | <div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">with</span> open(<span class="stringliteral">"git_diff.txt"</span>) <span class="keyword">as</span> in_file:</div> |
125 | 125 | <div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> modified_files = sorted(in_file.read().splitlines())</div> |
126 | 126 | <div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> print(<span class="stringliteral">"{} files were modified."</span>.format(len(modified_files)))</div> |
127 | | -<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div> |
| 127 | +<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div> |
128 | 128 | <div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> cpp_exts = tuple(<span class="stringliteral">".c .c++ .cc .cpp .cu .cuh .cxx .h .h++ .hh .hpp .hxx"</span>.split())</div> |
129 | 129 | <div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> cpp_files = [file <span class="keywordflow">for</span> file <span class="keywordflow">in</span> modified_files <span class="keywordflow">if</span> file.lower().endswith(cpp_exts)]</div> |
130 | 130 | <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> print(f<span class="stringliteral">"{len(cpp_files)} C++ files were modified."</span>)</div> |
131 | 131 | <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordflow">if</span> <span class="keywordflow">not</span> cpp_files:</div> |
132 | 132 | <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> sys.exit(0)</div> |
133 | 133 | <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div> |
134 | | -<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> subprocess.run([<span class="stringliteral">"clang-tidy"</span>, <span class="stringliteral">"--fix"</span>, <span class="stringliteral">"-p=build"</span>, <span class="stringliteral">"--extra-arg=-std=c++11"</span>, *cpp_files, <span class="stringliteral">"--"</span>], </div> |
135 | | -<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> check=<span class="keyword">True</span>, text=<span class="keyword">True</span>, stderr=subprocess.STDOUT)</div> |
136 | | -<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div> |
137 | | -<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> subprocess.run([<span class="stringliteral">"clang-format"</span>, <span class="stringliteral">"-i"</span>, <span class="stringliteral">"-style=file"</span>, *cpp_files], </div> |
138 | | -<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> check=<span class="keyword">True</span>, text=<span class="keyword">True</span>, stderr=subprocess.STDOUT)</div> |
139 | | -<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div> |
140 | | -<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> upper_files = [file <span class="keywordflow">for</span> file <span class="keywordflow">in</span> cpp_files <span class="keywordflow">if</span> file != file.lower()]</div> |
141 | | -<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">if</span> upper_files:</div> |
142 | | -<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> print(f<span class="stringliteral">"{len(upper_files)} files contain uppercase characters:"</span>)</div> |
143 | | -<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> print(<span class="stringliteral">"\n"</span>.join(upper_files) + <span class="stringliteral">"\n"</span>)</div> |
144 | | -<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div> |
145 | | -<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> space_files = [file <span class="keywordflow">for</span> file <span class="keywordflow">in</span> cpp_files <span class="keywordflow">if</span> <span class="stringliteral">" "</span> <span class="keywordflow">in</span> file <span class="keywordflow">or</span> <span class="stringliteral">"-"</span> <span class="keywordflow">in</span> file]</div> |
146 | | -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">if</span> space_files:</div> |
147 | | -<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> print(f<span class="stringliteral">"{len(space_files)} files contain space or dash characters:"</span>)</div> |
148 | | -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> print(<span class="stringliteral">"\n"</span>.join(space_files) + <span class="stringliteral">"\n"</span>)</div> |
149 | | -<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div> |
150 | | -<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> nodir_files = [file <span class="keywordflow">for</span> file <span class="keywordflow">in</span> cpp_files <span class="keywordflow">if</span> file.count(os.sep) != 1]</div> |
151 | | -<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span> nodir_files:</div> |
152 | | -<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> print(f<span class="stringliteral">"{len(nodir_files)} files are not in one and only one directory:"</span>)</div> |
153 | | -<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> print(<span class="stringliteral">"\n"</span>.join(nodir_files) + <span class="stringliteral">"\n"</span>)</div> |
154 | | -<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div> |
155 | | -<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> bad_files = len(upper_files + space_files + nodir_files)</div> |
156 | | -<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> bad_files:</div> |
157 | | -<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> sys.exit(bad_files)</div> |
| 134 | +<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> subprocess.run(</div> |
| 135 | +<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> [</div> |
| 136 | +<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="stringliteral">"clang-tidy"</span>,</div> |
| 137 | +<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="stringliteral">"--fix"</span>,</div> |
| 138 | +<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="stringliteral">"-p=build"</span>,</div> |
| 139 | +<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="stringliteral">"--extra-arg=-std=c++11"</span>,</div> |
| 140 | +<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> *cpp_files,</div> |
| 141 | +<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="stringliteral">"--"</span>,</div> |
| 142 | +<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> ],</div> |
| 143 | +<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> check=<span class="keyword">True</span>,</div> |
| 144 | +<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> text=<span class="keyword">True</span>,</div> |
| 145 | +<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> stderr=subprocess.STDOUT,</div> |
| 146 | +<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> )</div> |
| 147 | +<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> subprocess.run(</div> |
| 148 | +<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> [<span class="stringliteral">"clang-format"</span>, <span class="stringliteral">"-i"</span>, <span class="stringliteral">"-style=file"</span>, *cpp_files],</div> |
| 149 | +<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> check=<span class="keyword">True</span>,</div> |
| 150 | +<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> text=<span class="keyword">True</span>,</div> |
| 151 | +<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> stderr=subprocess.STDOUT,</div> |
| 152 | +<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> )</div> |
| 153 | +<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> upper_files = [file <span class="keywordflow">for</span> file <span class="keywordflow">in</span> cpp_files <span class="keywordflow">if</span> file != file.lower()]</div> |
| 154 | +<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> upper_files:</div> |
| 155 | +<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> print(f<span class="stringliteral">"{len(upper_files)} files contain uppercase characters:"</span>)</div> |
| 156 | +<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> print(<span class="stringliteral">"\n"</span>.join(upper_files) + <span class="stringliteral">"\n"</span>)</div> |
| 157 | +<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> space_files = [file <span class="keywordflow">for</span> file <span class="keywordflow">in</span> cpp_files <span class="keywordflow">if</span> <span class="stringliteral">" "</span> <span class="keywordflow">in</span> file <span class="keywordflow">or</span> <span class="stringliteral">"-"</span> <span class="keywordflow">in</span> file]</div> |
| 158 | +<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">if</span> space_files:</div> |
| 159 | +<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> print(f<span class="stringliteral">"{len(space_files)} files contain space or dash characters:"</span>)</div> |
| 160 | +<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> print(<span class="stringliteral">"\n"</span>.join(space_files) + <span class="stringliteral">"\n"</span>)</div> |
| 161 | +<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> nodir_files = [file <span class="keywordflow">for</span> file <span class="keywordflow">in</span> cpp_files <span class="keywordflow">if</span> file.count(os.sep) != 1]</div> |
| 162 | +<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> nodir_files:</div> |
| 163 | +<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> print(f<span class="stringliteral">"{len(nodir_files)} files are not in one and only one directory:"</span>)</div> |
| 164 | +<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> print(<span class="stringliteral">"\n"</span>.join(nodir_files) + <span class="stringliteral">"\n"</span>)</div> |
| 165 | +<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> bad_files = len(upper_files + space_files + nodir_files)</div> |
| 166 | +<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">if</span> bad_files:</div> |
| 167 | +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> sys.exit(bad_files)</div> |
158 | 168 | </div><!-- fragment --></div><!-- contents --> |
159 | 169 | </div><!-- doc-content --> |
160 | 170 | </div><!-- container --> |
|
0 commit comments