103def check_file():
104
105 athMsgLog.info("Hello from the config-checker!")
106
107 h_version = herwig_version()
108 version = h_version[0]
109 subversion = h_version[2]
110 subsubversion = h_version[4]
111 athMsgLog.info("The current Herwig version is "+version+"."+subversion+"."+subsubversion)
112
113
114 files = [f for f in os.listdir('.') if os.path.isfile(f)]
115 HerwigINFile = []
116 for file in files:
117 if ".in" in file:
118 HerwigINFile.append(file)
119
120
121 run_name = HerwigINFile[0]
122 athMsgLog.info("The Herwig7 *.in file is "+run_name)
123
124
125 set_commands = []
126 read_commands = []
127 create_commands = []
128 insert_commands = []
129
130 f = open(run_name, "r")
131 cd_in_line = False
132 cd_command = ""
133 for line in f:
134 if not line.startswith("#"):
135 cd,cd_cmd,set_commands,read_commands,create_commands,insert_commands = sort_commands(line,
136 cd_in_line,cd_command,set_commands,
137 read_commands,create_commands,insert_commands)
138 cd_in_line,cd_command = cd,cd_cmd
139 else:
140 continue
141
142
143 set_commands = clean_string(set_commands,"set ","")
144 create_commands = clean_string(create_commands,"create ","")
145 read_commands = clean_string(read_commands,"read ","")
146 read_commands = clean_string(read_commands,"snippets/","")
147
148
149 include_path = os.environ['HERWIG7_PATH']+"/share/Herwig/"
150 snippet_path = os.environ['HERWIG7_PATH']+"/share/Herwig/snippets/"
151
152 include_files = [f for f in os.listdir(include_path)]
153 snippet_files = [f for f in os.listdir(snippet_path)]
154
155
156 read_files = []
157 for file in include_files:
158 for command in read_commands:
159 if file in command:
160 read_files.append(include_path+file)
161 for file in snippet_files:
162 for command in read_commands:
163 if file in command:
164 read_files.append(snippet_path+file)
165
166
167 for file in read_files:
168 if ".in" not in file:
169 athMsgLog.info("Skipping file " + file + " since it does not contain any in-file")
170 athMsgLog.info("It is just a directory, can be ignored.")
171 continue
172 else:
173 f = open(file, "r")
174 cd_in_line = False
175 cd_command = ""
176 for line in f:
177 if not line.startswith("#"):
178 cd,cd_cmd,set_commands,read_commands,create_commands,insert_commands = sort_commands(line,cd_in_line,cd_command,set_commands,read_commands,create_commands,insert_commands)
179 cd_in_line,cd_command = cd,cd_cmd
180 else:
181 continue
182 f.close()
183
184
185 set_commands = clean_string(set_commands,"set ","")
186 create_commands = clean_string(create_commands,"create ","")
187 read_commands = clean_string(read_commands,"read ","")
188 read_commands = clean_string(read_commands,"snippets/","")
189
190
191 clean_string(set_commands,"//","/",True)
192 clean_string(create_commands,"//","/",True)
193 clean_string(insert_commands,"//","/",True)
194
195
196 athMsgLog.debug("\n These are the commands found by the Herwig7JOChecker:\n")
197 print_commands(set_commands)
198 print_commands(create_commands)
199 print_commands(insert_commands)
200 athMsgLog.debug("\n")
201
202
203
204
205 set_commands = split_commands(set_commands)
206 create_commands = split_commands(create_commands)
207 insert_commands = split_commands(insert_commands)
208
209
210 with open("HerwigCommandDuplicates.txt","w") as file:
211 found_duplicate1 = check_for_overwrites(set_commands,file)
212 found_duplicate2 = check_for_overwrites(create_commands,file)
213 found_duplicate3 = check_for_overwrites(insert_commands,file)
214
215
216
217
218 with open("HerwigCommands.txt","w") as file:
219 write_to_file(set_commands,file)
220 write_to_file(create_commands,file)
221 write_to_file(insert_commands,file)
222
223
224 if found_duplicate1 or found_duplicate2 or found_duplicate3:
225 athMsgLog.warn("There were some settings which are overwritten, please check the log-file HerwigCommandDuplicates.txt")
226
227
228 athMsgLog.info("Commands have been written to HerwigCommands.txt")
229 athMsgLog.info("Duplicates have been written to HerwigCommandsDuplicates.txt")
230 athMsgLog.info("Godybe from the config-checker!")
231