Download src/Tools/MakeAppTools.py from AbdulElahGwaith/FreeCAD: direct link, hf CLI and curl.
- Browser
- Download file 3.31 kB
-
https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Tools/MakeAppTools.py
- Command line
-
hf download hf://AbdulElahGwaith/FreeCAD/src/Tools/MakeAppTools.py
-
curl -L -o MakeAppTools.py https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Tools/MakeAppTools.py
3.31 kB
| # SPDX-License-Identifier: LGPL-2.1-or-later | |
| import os, sys, re, FCFileTools | |
| verbose = 0 | |
| dcount = fcount = 0 | |
| def replaceTemplate(dirName, oldName, newName): | |
| """ | |
| modify contents from dirName and below, replace oldName by newName | |
| """ | |
| for file in os.listdir(dirName): | |
| pathName = os.path.join(dirName, file) | |
| if not os.path.isdir(pathName): | |
| try: | |
| print(pathName) | |
| origFile = open(pathName) # open file | |
| lines = origFile.readlines() # read the file... | |
| origFile.close() # ... and close it | |
| output = open(pathName, "w") # open the file again | |
| for line in lines: | |
| if line.find(oldName) != -1: # search for 'oldName' and replace it | |
| line = line.replace(oldName, newName) | |
| output.write(line) # write the modified line back | |
| output.close # close the file | |
| except Exception: | |
| print("Error modifying ", pathName, " -- skipped") | |
| print(sys.exc_info()[0], sys.exc_info()[1]) | |
| else: | |
| try: | |
| replaceTemplate(pathName, oldName, newName) | |
| except Exception: | |
| print("Error changing to directory ", pathName, " -- skipped") | |
| print(sys.exc_info()[0], sys.exc_info()[1]) | |
| def copyTemplate(dirFrom, dirTo, oldName, newName, MatchFile, MatchDir): | |
| """ | |
| copy contents of dirFrom and below to dirTo | |
| """ | |
| global dcount, fcount | |
| for file in os.listdir(dirFrom): # for files/dirs here | |
| print(file) | |
| pathFrom = os.path.join(dirFrom, file) | |
| pathTo = os.path.join(dirTo, file) # extend both paths | |
| if pathTo.find(oldName) != -1: | |
| pathTo = pathTo.replace(oldName, newName) # rename file if 'oldName' is found | |
| if not os.path.isdir(pathFrom): # copy simple files | |
| hit = 0 | |
| for matchpat in MatchFile: | |
| if re.match(matchpat, file): | |
| hit = 1 | |
| break | |
| if hit: | |
| print("Ignore file " + file) | |
| continue | |
| try: | |
| if verbose > 1: | |
| print("copying ", pathFrom, " to ", pathTo) | |
| FCFileTools.cpfile(pathFrom, pathTo) | |
| fcount = fcount + 1 | |
| except Exception: | |
| print("Error copying ", pathFrom, " to ", pathTo, " -- skipped") | |
| print(sys.exc_info()[0], sys.exc_info()[1]) | |
| else: | |
| hit = 0 | |
| for matchpat in MatchDir: | |
| if re.match(matchpat, file): | |
| hit = 1 | |
| break | |
| if hit: | |
| print("Ignore directory " + file) | |
| continue | |
| if verbose: | |
| print("copying dir ", pathFrom, " to ", pathTo) | |
| try: | |
| os.mkdir(pathTo) # make new subdir | |
| copyTemplate( | |
| pathFrom, pathTo, oldName, newName, MatchFile, MatchDir | |
| ) # recurse into subdirs | |
| dcount = dcount + 1 | |
| except Exception: | |
| print("Error creating ", pathTo, " -- skipped") | |
| print(sys.exc_info()[0], sys.exc_info()[1]) | |