@@ -119,6 +119,28 @@ def copyAntBuildFiles():
119119 shutil .copy (str (github / "Ant-Common.xml" ), str (destination ))
120120
121121
122+ class CodeFileOptions (object ):
123+ """docstring for CodeFileOptions"""
124+ def __init__ (self , codeFile ):
125+ self .codeFile = codeFile
126+
127+ self .cmdargs = None
128+ if "{Args:" in self .codeFile .code :
129+ for line in self .codeFile .lines :
130+ if "{Args:" in line :
131+ self .cmdargs = line .split ("{Args:" )[1 ].strip ()[:- 1 ]
132+
133+ self .runbyhand = "{RunByHand}" in self .codeFile .code
134+
135+ self .exclude = None
136+ if "{CompileTimeError}" in self .codeFile .code :
137+ self .exclude = self .codeFile .name + ".java"
138+ if self .codeFile .subdirs :
139+ self .exclude = '/' .join (self .codeFile .subdirs ) + '/' + self .exclude
140+ print (self .exclude )
141+
142+ self .throwsexception = "{ThrowsException}" in self .codeFile .code
143+
122144class CodeFile :
123145 def __init__ (self , javaFile , chapterDir ):
124146 self .chapter_dir = chapterDir
@@ -139,30 +161,31 @@ def __init__(self, javaFile, chapterDir):
139161 self .tagLine = self .lines [0 ][4 :]
140162 self .relpath = '../' + '/' .join (self .tagLine .split ('/' )[:- 1 ])
141163 self .name = javaFile .name .split ('.' )[0 ]
142- self .cmdargs = None
143- if "{Args:" in self .code :
144- for line in self .lines :
145- if "{Args:" in line :
146- self .cmdargs = line .split ("{Args:" )[1 ].strip ()[:- 1 ]
147- self .runbyhand = "{RunByHand}" in self .code
148- self .exclude = None
149- if "{CompileTimeError}" in self .code :
150- self .exclude = self .name + ".java"
151- if self .subdirs :
152- self .exclude = '/' .join (self .subdirs ) + '/' + self .exclude
153- print (self .exclude )
154- self .throwsexception = "{ThrowsException}" in self .code
164+ self .options = CodeFileOptions (self )
165+ # self.cmdargs = None
166+ # if "{Args:" in self.code:
167+ # for line in self.lines:
168+ # if "{Args:" in line:
169+ # self.cmdargs = line.split("{Args:")[1].strip()[:-1]
170+ # self.runbyhand = "{RunByHand}" in self.code
171+ # self.exclude = None
172+ # if "{CompileTimeError}" in self.code:
173+ # self.exclude = self.name + ".java"
174+ # if self.subdirs:
175+ # self.exclude = '/'.join(self.subdirs) + '/' + self.exclude
176+ # print(self.exclude)
177+ # self.throwsexception = "{ThrowsException}" in self.code
155178
156179 def run_command (self ):
157180 if not self .main :
158181 return ""
159182 if self .package :
160- if self .cmdargs :
161- return """ <jrun cls="%s" dirpath="%s" arguments='%s'/>\n """ % (self .packageName () + '.' + self .name , self .relpath , self .cmdargs )
183+ if self .options . cmdargs :
184+ return """ <jrun cls="%s" dirpath="%s" arguments='%s'/>\n """ % (self .packageName () + '.' + self .name , self .relpath , self .options . cmdargs )
162185 else :
163186 return """ <jrun cls="%s" dirpath="%s"/>\n """ % (self .packageName () + '.' + self .name , self .relpath )
164- if self .cmdargs :
165- return """ <jrun cls="%s" arguments='%s'/>\n """ % (self .name , self .cmdargs )
187+ if self .options . cmdargs :
188+ return """ <jrun cls="%s" arguments='%s'/>\n """ % (self .name , self .options . cmdargs )
166189 else :
167190 return """ <jrun cls="%s"/>\n """ % self .name
168191
@@ -188,7 +211,7 @@ class Chapter:
188211 def __init__ (self , dir ):
189212 self .dir = dir
190213 self .code_files = [CodeFile (javaFile , dir ) for javaFile in dir .glob ("**/*.java" )]
191- self .excludes = [cf .exclude for cf in self .code_files if cf .exclude ]
214+ self .excludes = [cf .options . exclude for cf in self .code_files if cf . options .exclude ]
192215
193216 def __repr__ (self ):
194217 result = "-" * 80
@@ -210,7 +233,7 @@ def checkPackages(self):
210233 def makeBuildFile (self ):
211234 buildFile = startBuild % (self .dir .name , " " .join (self .excludes ))
212235 for cf in self .code_files :
213- if any ([cf .name + ".java" in f for f in self .excludes ]) or cf .runbyhand :
236+ if any ([cf .name + ".java" in f for f in self .excludes ]) or cf .options . runbyhand :
214237 continue
215238 buildFile += cf .run_command ()
216239 buildFile += endBuild
0 commit comments