Rev 2003 | Rev 2137 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 2003 | Rev 2006 | ||
|---|---|---|---|
| Line 13... | Line 13... | ||
| 13 | modules = [] |
13 | modules = [] |
| 14 | for fileName in os.listdir(moddir): |
14 | for fileName in os.listdir(moddir): |
| 15 | if fileName[0] != '.' and fileName != "template": |
15 | if fileName[0] != '.' and fileName != "template": |
| 16 | modules.append(fileName) |
16 | modules.append(fileName) |
| 17 | 17 | ||
| 18 | return sorted( |
18 | return sorted(modules, key=str.lower) |
| 19 | 19 | ||
| 20 | 20 | ||
| 21 | def getLocalModules(): |
21 | def getLocalModules(): |
| 22 | modules = [] |
22 | modules = [] |
| 23 | for fileName in os.listdir(localmoddir): |
23 | for fileName in os.listdir(localmoddir): |
| 24 | if fileName[0] != '.': |
24 | if fileName[0] != '.': |
| 25 | modules.append(fileName) |
25 | modules.append(fileName) |
| 26 | 26 | ||
| 27 | return sorted( |
27 | return sorted(modules, key=str.lower) |
| 28 | 28 | ||
| 29 | 29 | ||
| 30 | def parseModuleIdFromFile(moduleName, fileName): |
30 | def parseModuleIdFromFile(moduleName, fileName): |
| 31 | config_inc = open(fileName, 'r') |
31 | config_inc = open(fileName, 'r') |
| 32 | config_inc_lines = config_inc.readlines() |
32 | config_inc_lines = config_inc.readlines() |
| Line 49... | Line 49... | ||
| 49 | if applicationName[0] != '.' and os.path.exists("../" + applicationName + "/config.inc"): |
49 | if applicationName[0] != '.' and os.path.exists("../" + applicationName + "/config.inc"): |
| 50 | takenIds = parseModuleIdFromFile(moduleName, "../" + applicationName + "/config.inc") |
50 | takenIds = parseModuleIdFromFile(moduleName, "../" + applicationName + "/config.inc") |
| 51 | 51 | ||
| 52 | return takenIds |
52 | return takenIds |
| 53 | 53 | ||
| 54 | def parseAllModuleIdFromFile( |
54 | def parseAllModuleIdFromFile(fileName, foundModules): |
| - | 55 | index = 0 |
|
| 55 | modules = getModules() |
56 | modules = getModules() |
| 56 | config_inc = open(fileName, 'r') |
57 | config_inc = open(fileName, 'r') |
| 57 | config_inc_lines = config_inc.readlines() |
58 | config_inc_lines = config_inc.readlines() |
| 58 | config_inc.close() |
59 | config_inc.close() |
| - | 60 | parts = fileName.split("/") |
|
| - | 61 | node = parts[1] |
|
| 59 | for line in config_inc_lines: |
62 | for line in config_inc_lines: |
| 60 | line = line.strip("\n").strip(" ") |
63 | line = line.strip("\n").strip(" ") |
| 61 | 64 | ||
| 62 | if line.find("_ID") != -1: |
65 | if line.find("_ID") != -1: |
| 63 | parts = line.split("=") |
66 | parts = line.split("=") |
| 64 | if (parts[0][:-3] in modules): |
67 | if (parts[0][:-3] in modules): |
| 65 | if parts[1].strip(" ") != -1 and parts[1].strip(" ") != "<ID>": |
68 | if parts[1].strip(" ") != -1 and parts[1].strip(" ") != "<ID>": |
| - | 69 | if (foundModules == 0): |
|
| 66 | print "\tModule: "+parts[0][:-3]+"\t"+parts[1].strip(" ") |
70 | print "\tModule: "+parts[0][:-3]+"\t"+parts[1].strip(" ") |
| - | 71 | else: |
|
| - | 72 | foundModules.append(parts[0][:-3]+"$"+node+"$"+parts[1].strip(" ")) |
|
| - | 73 | ||
| - | 74 | return foundModules |
|
| 67 | 75 | ||
| 68 | def getAllModuleIdsFromFile(): |
76 | def getAllModuleIdsFromFile(): |
| - | 77 | foundModules = [] |
|
| 69 | for applicationName in os.listdir("../"): |
78 | for applicationName in os.listdir("../"): |
| - | 79 | if applicationName[0] != '.' and os.path.exists("../" + applicationName + "/config.inc"): |
|
| - | 80 | parseAllModuleIdFromFile("../" + applicationName + "/config.inc", foundModules) |
|
| - | 81 | ||
| - | 82 | foundModulesSorted = sorted(foundModules, key=str.lower) |
|
| - | 83 | lastModule = "" |
|
| - | 84 | for x in foundModulesSorted: |
|
| - | 85 | splitted = x.split("$") |
|
| - | 86 | if (lastModule != splitted[0]): |
|
| - | 87 | lastModule = splitted[0] |
|
| - | 88 | print lastModule |
|
| - | 89 | print "%20s :" % splitted[1], |
|
| - | 90 | print splitted[2] |
|
| - | 91 | ||
| - | 92 | def getAllNodesFromFile(): |
|
| - | 93 | files = sorted(os.listdir("../"), key=str.lower) |
|
| - | 94 | for applicationName in files: |
|
| 70 | if applicationName[0] != '.' and os.path.exists("../" + applicationName + "/config.inc"): |
95 | if applicationName[0] != '.' and os.path.exists("../" + applicationName + "/config.inc"): |
| 71 | print "Found node: "+applicationName |
96 | print "Found node: "+applicationName |
| 72 | parseAllModuleIdFromFile("../" + applicationName + "/config.inc") |
97 | parseAllModuleIdFromFile("../" + applicationName + "/config.inc", 0) |
| 73 | 98 | ||
| 74 | def getFreeModuleId(takenIds): |
99 | def getFreeModuleId(takenIds): |
| 75 | if len(takenIds) == 0: |
100 | if len(takenIds) == 0: |
| 76 | return 1 |
101 | return 1 |
| 77 | takenIds.sort() |
102 | takenIds.sort() |
| 78 | 103 | ||
| Line 80... | Line 105... | ||
| 80 | 105 | ||
| 81 | for takenId in takenIds: |
106 | for takenId in takenIds: |
| 82 | if takenId != lastId+1: |
107 | if takenId != lastId+1: |
| 83 | return lastId+1 |
108 | return lastId+1 |
| 84 | lastId = takenId |
109 | lastId = takenId |
| 85 | 110 | ||
| 86 | return lastId+1 |
111 | return lastId+1 |
| 87 | 112 | ||
| 88 | 113 | ||
| 89 | 114 | ||
| 90 | def compileMainFile(): |
115 | def compileMainFile(): |
| Line 92... | Line 117... | ||
| 92 | main_c_template = open('src/main.c.template', 'r') |
117 | main_c_template = open('src/main.c.template', 'r') |
| 93 | main_c_template_lines = main_c_template.readlines() |
118 | main_c_template_lines = main_c_template.readlines() |
| 94 | main_c_template.close() |
119 | main_c_template.close() |
| 95 | 120 | ||
| 96 | modules = getLocalModules() |
121 | modules = getLocalModules() |
| 97 | 122 | ||
| 98 | main_c = open('src/main.c', 'w') |
123 | main_c = open('src/main.c', 'w') |
| 99 | 124 | ||
| 100 | for main_c_template_line in main_c_template_lines: |
125 | for main_c_template_line in main_c_template_lines: |
| 101 | pos_include = main_c_template_line.find('%INCLUDE') |
126 | pos_include = main_c_template_line.find('%INCLUDE') |
| 102 | pos_init = main_c_template_line.find('%INIT') |
127 | pos_init = main_c_template_line.find('%INIT') |
| Line 109... | Line 134... | ||
| 109 | main_c.write(main_c_template_line[:pos_include] + "#include \"../modules/" + moduleName + "/" + moduleName + ".h\"\n") |
134 | main_c.write(main_c_template_line[:pos_include] + "#include \"../modules/" + moduleName + "/" + moduleName + ".h\"\n") |
| 110 | elif pos_init != -1: |
135 | elif pos_init != -1: |
| 111 | for moduleName in modules: |
136 | for moduleName in modules: |
| 112 | main_c.write(main_c_template_line[:pos_init] + moduleName + "_Init();\n") |
137 | main_c.write(main_c_template_line[:pos_init] + moduleName + "_Init();\n") |
| 113 | elif pos_process != -1: |
138 | elif pos_process != -1: |
| 114 | for moduleName in modules: |
139 | for moduleName in modules: |
| 115 | main_c.write(main_c_template_line[:pos_process] + moduleName + "_Process();\n") |
140 | main_c.write(main_c_template_line[:pos_process] + moduleName + "_Process();\n") |
| 116 | elif pos_list != -1: |
141 | elif pos_list != -1: |
| 117 | count = 1 |
142 | count = 1 |
| 118 | for moduleName in modules: |
143 | for moduleName in modules: |
| 119 | main_c.write(main_c_template_line[:pos_list] + moduleName + "_List(" + str(count) + ");\n") |
144 | main_c.write(main_c_template_line[:pos_list] + moduleName + "_List(" + str(count) + ");\n") |
| Line 249... | Line 274... | ||
| 249 | if line[0] != '#': |
274 | if line[0] != '#': |
| 250 | uniqueSet2.append(line) |
275 | uniqueSet2.append(line) |
| 251 | 276 | ||
| 252 | for sources_list_template_line in sources_list_template_lines: |
277 | for sources_list_template_line in sources_list_template_lines: |
| 253 | line = sources_list_template_line.strip("\n").strip(" ") |
278 | line = sources_list_template_line.strip("\n").strip(" ") |
| 254 | if len(line) > 0: |
279 | if len(line) > 0: |
| 255 | if line[0] != '#': |
280 | if line[0] != '#': |
| 256 | uniqueSet.append(line) |
281 | uniqueSet.append(line) |
| 257 | 282 | ||
| 258 | modules = getLocalModules() |
283 | modules = getLocalModules() |
| 259 | 284 | ||
| Line 311... | Line 336... | ||
| 311 | print "Listing modules..." |
336 | print "Listing modules..." |
| 312 | print "" |
337 | print "" |
| 313 | getAllModuleIdsFromFile() |
338 | getAllModuleIdsFromFile() |
| 314 | print "" |
339 | print "" |
| 315 | print "Listing modules complete" |
340 | print "Listing modules complete" |
| - | 341 | print "" |
|
| - | 342 | ||
| - | 343 | def listUsedNodes(): |
|
| - | 344 | print "Listing nodes..." |
|
| - | 345 | print "" |
|
| - | 346 | getAllNodesFromFile() |
|
| - | 347 | print "" |
|
| - | 348 | print "Listing nodes complete" |
|
| 316 | print "" |
349 | print "" |
| 317 | 350 | ||
| 318 | def addModule(moduleName): |
351 | def addModule(moduleName): |
| 319 | print "Trying to add module " + moduleName |
352 | print "Trying to add module " + moduleName |
| 320 | 353 | ||
| Line 387... | Line 420... | ||
| 387 | print " --list List avalible and installed modules" |
420 | print " --list List avalible and installed modules" |
| 388 | print " --add=<module name> Adds a module to the application" |
421 | print " --add=<module name> Adds a module to the application" |
| 389 | print " --del=<module name> Removes a module from the application" |
422 | print " --del=<module name> Removes a module from the application" |
| 390 | print " --new=<module name> Creates a new module from the module template" |
423 | print " --new=<module name> Creates a new module from the module template" |
| 391 | print " --modules Lists all used modules in your personal folder" |
424 | print " --modules Lists all used modules in your personal folder" |
| - | 425 | print " --nodes Lists all nodes in your personal folder" |
|
| 392 | print "" |
426 | print "" |
| 393 | 427 | ||
| 394 | 428 | ||
| 395 | def main(): |
429 | def main(): |
| 396 | try: |
430 | try: |
| 397 | opts, args = getopt.getopt(sys.argv[1:], " |
431 | opts, args = getopt.getopt(sys.argv[1:], "hlrcmn", ["help", "list", "modules", "nodes", "regenerate", "add=", "del=", "new="]) |
| 398 | except getopt.GetoptError, err: |
432 | except getopt.GetoptError, err: |
| 399 | # print help information and exit: |
433 | # print help information and exit: |
| 400 | print str(err) # will print something like "option -a not recognized" |
434 | print str(err) # will print something like "option -a not recognized" |
| 401 | usage() |
435 | usage() |
| 402 | sys.exit(2) |
436 | sys.exit(2) |
| 403 | 437 | ||
| 404 | if len(sys.argv) == 1: |
438 | if len(sys.argv) == 1: |
| 405 | usage() |
439 | usage() |
| 406 | sys.exit() |
440 | sys.exit() |
| 407 | 441 | ||
| 408 | for o, a in opts: |
442 | for o, a in opts: |
| 409 | if o in ("-c"): |
443 | if o in ("-c"): |
| 410 | modules = getModules() |
444 | modules = getModules() |
| 411 | 445 | ||
| 412 | for module in modules: |
446 | for module in modules: |
| 413 | print module |
447 | print module |
| 414 | 448 | ||
| 415 | elif o in ("-l", "--list"): |
449 | elif o in ("-l", "--list"): |
| 416 | modules = getModules() |
450 | modules = getModules() |
| 417 | print "Available modules" |
451 | print "Available modules" |
| 418 | print "=================" |
452 | print "=================" |
| Line 431... | Line 465... | ||
| 431 | print module |
465 | print module |
| 432 | 466 | ||
| 433 | elif o in ("-h", "--help"): |
467 | elif o in ("-h", "--help"): |
| 434 | usage() |
468 | usage() |
| 435 | sys.exit() |
469 | sys.exit() |
| 436 | 470 | ||
| 437 | elif o in ("-r", "--regenerate"): |
471 | elif o in ("-r", "--regenerate"): |
| 438 | regenerateModules() |
472 | regenerateModules() |
| 439 | 473 | ||
| 440 | elif o in ("-m", "--modules"): |
474 | elif o in ("-m", "--modules"): |
| 441 | listUsedModules() |
475 | listUsedModules() |
| - | 476 | ||
| - | 477 | elif o in ("-n", "--nodes"): |
|
| - | 478 | listUsedNodes() |
|
| 442 | 479 | ||
| 443 | elif o in ("--add"): |
480 | elif o in ("--add"): |
| 444 | if len(a) == 0: |
481 | if len(a) == 0: |
| 445 | print "No modulename specified" |
482 | print "No modulename specified" |
| 446 | usage() |
483 | usage() |