-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerateModule.py
More file actions
56 lines (45 loc) · 1.95 KB
/
generateModule.py
File metadata and controls
56 lines (45 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import jinja2
import os
import pathlib
import argparse
data = {
"module_name": "MyModule",
"friendly_name": "MyMod"
}
def renderTemplate(TEMPLATE_FILE):
templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
template = templateEnv.get_template(TEMPLATE_FILE)
return template.render(data)
def getTemplates(filepath, filetype):
paths = []
for root, dirs, files in os.walk(filepath):
for file in files:
if file.lower().endswith(filetype.lower()):
paths.append(os.path.join(root, file))
return(paths)
def renameModuleFiles(templateFilePath):
if 'module_name' in templateFilePath:
return templateFilePath.replace('module_name', data['module_name'])
elif 'friendly_name' in templateFilePath:
return templateFilePath.replace('friendly_name', data['friendly_name'])
else:
return templateFilePath
# main
if __name__ == '__main__':
# cli arguments for module and friendly names
parser = argparse.ArgumentParser(description="Pass names for module name for folders and friendly name for cmdlets e.g. --mName WidgetCorp --fName WC")
parser.add_argument('--mName', '-m', required=True, help='Module name for directories and import-module.')
parser.add_argument('--fName', '-f', required=True, help='Friendly name for cmdlets e.g. WC gives Set-WCConfiguration.')
args = parser.parse_args()
data['module_name'] = args.mName
data['friendly_name'] = args.fName
os.rename('./TemplateModule/module_name', f'./TemplateModule/{data["module_name"]}')
templates = getTemplates('TemplateModule', '1')
for template in templates:
p = pathlib.PureWindowsPath(template)
outputText = renderTemplate(p.as_posix())
with open(template, 'w') as outputFile:
outputFile.write(outputText)
os.rename(template, renameModuleFiles(template))
# print(outputText)