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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import json
import sys
def create_directory_structure(base_path, project_name):
# Define the directory structure
structure = {
project_name: {
"dist": {
".keep": None
},
"src": {
".keep": None
},
"vendor": {
".keep": None
},
".keep": None,
f"{project_name}.json": {}
}
}
def create_structure(path, structure):
for name, content in structure.items():
current_path = os.path.join(path, name)
# Create directories or files based on the content type
if isinstance(content, dict) and current_path.endswith(".json") == False:
os.makedirs(current_path, exist_ok=True)
create_structure(current_path, content)
elif content is None:
# Create an empty file
with open(current_path, 'w') as f:
pass
# Create the base directory
os.makedirs(base_path, exist_ok=True)
create_structure(base_path, structure)
# Create the JSON file
diutil_json_path = os.path.join(base_path, project_name, f"{project_name}.json")
manifest = {
"compiler_path": "clang++",
"compiler_std": "c++20",
"headers_path": ["./", "../../../dev/kernel", "../../../public/frameworks/", "../../../dev/", "./"],
"sources_path": [
],
"output_name": f"./dist/{project_name}",
"cpp_macros": [
"kSampleFWVersion=0x0100",
"kSampleFWVersionHighest=0x0100",
"kSampleFWVersionLowest=0x0100",
"__NE_SDK__"
]
}
with open(diutil_json_path, 'w') as json_file:
json.dump(manifest, json_file, indent=4)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: mk_fwrk.py <project_name>")
sys.exit(os.EX_CONFIG)
base_path = os.getcwd() # Use the current working directory as the base path
create_directory_structure(base_path, sys.argv[1])
print("NeKernel framework created successfully.")
|