Changeset 2248 for 2011


Ignore:
Timestamp:
2011-06-28 15:55:35 (8 years ago)
Author:
tekrjant
Message:

A report is created of the build.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/24/build_games.py

    r2140 r2248  
    66from glob import * 
    77from subprocess import * 
     8from xml.dom.minidom import Document 
     9 
    810 
    911output_dir = abspath("pelit") 
     
    1113personal_dirs = [d for d in os.listdir(".") if isdir(d) and d not in ("lib", basename(output_dir), ".svn")] 
    1214projects_that_did_not_build = [] 
     15report = Document() 
     16document_root = "" 
    1317 
    1418def check_requirements(): 
     
    2933 
    3034 
     35def addElement(parent, name, value): 
     36        node = report.createElement(name) 
     37        parent.appendChild(node) 
     38        node.appendChild(report.createTextNode(str(value))) 
     39 
     40 
     41def add_to_report(author, name, success): 
     42        e = report.createElement("game") 
     43        document_root.appendChild(e) 
     44 
     45        addElement(e, "author", author) 
     46        addElement(e, "name", name) 
     47        addElement(e, "success", success) 
     48 
     49 
    3150def build_games_in_personal_dir(personal_dir): 
    3251        for root, dirs, files in os.walk(personal_dir): 
     
    3756                        if len(projects) > 1: 
    3857                                print "NOTE: There is more than one project file in", root 
    39                         if build(projects[0]): 
    40                                 project_name = splitext(basename(projects[0]))[0] 
    41                                 dst_dir = join(output_dir, basename(personal_dir)) 
     58 
     59                        project_name = splitext(basename(projects[0]))[0] 
     60                        author = basename(personal_dir) 
     61 
     62                        success = build(projects[0]) 
     63                        add_to_report(author, project_name, success) 
     64 
     65                        if success: 
     66                                dst_dir = join(output_dir, author) 
    4267                                copy_game(project_name, root, dst_dir) 
    43                                 print basename(personal_dir) + ": " + project_name 
     68                                print author + ": " + project_name 
    4469                        else: 
    4570                                projects_that_did_not_build.append(projects[0]) 
     
    6186 
    6287 
     88def initialize_report(): 
     89        global document_root 
     90        document_root = report.createElement("games") 
     91        report.appendChild(document_root) 
     92         
     93 
     94def write_report(): 
     95        with open("build_report.xml", "w") as f: 
     96                f.write(report.toprettyxml()) 
     97 
     98 
    6399def main(): 
    64100        try: 
     101                initialize_report() 
    65102                check_requirements() 
    66103                create_output_directory() 
    67104                build_games() 
     105                write_report() 
    68106        except KeyboardInterrupt: 
    69107                print "BUILD CANCELLED" 
Note: See TracChangeset for help on using the changeset viewer.