def do_gen_check(self): path = self.target_directory.get() sout = io.StringIO() rfactortools.process_gen_directory(path, False, sout) self.app.show_text_window("rfactortools: .gen check", sout.getvalue())
# GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. import argparse import sys import rfactortools if __name__ == "__main__": parser = argparse.ArgumentParser(description='rFactor .veh/.gen processor') parser.add_argument('DIRECTORY', action='store', type=str, help='directory containing .gen and .veh files') parser.add_argument('-c', '--check', action='store_true', default=False, help="check the file for errors") parser.add_argument('-v', '--verbose', action='store_true', default=False, help="be more verbose") parser.add_argument('--add-searchpath', metavar="PATH", help="be more verbose") parser.add_argument('-f', '--fix', action='store_true', default=False, help="try to fix all detected errors") args = parser.parse_args() rfactortools.process_gen_directory(args.DIRECTORY, args.fix, sys.stdout) # EOF #
def convert_all(self, target_directory): self.report_progress("start") target_directory = os.path.normpath(target_directory) # convert GameData/ directories for d in self.source_gamedata_directories: self.report_progress("directory", d) self.source_gamedata_directory = os.path.normpath(d) if self.cfg.single_gamedata: target_gamedata_directory = os.path.join( target_directory, "GameData") else: target_gamedata_directory = os.path.join( target_directory, os.path.relpath(self.source_gamedata_directory, self.source_directory)) logging.info("converting GameData %s to %s", self.source_gamedata_directory, target_gamedata_directory) self.copy_directory_hierachy(self.source_gamedata_directory, target_gamedata_directory) self.convert_gamedata(self.source_gamedata_directory, target_gamedata_directory) try: rfactortools.process_gen_directory(target_gamedata_directory, True, io.StringIO()) except Exception: logging.exception("rfactortools.process_gen_directory") # convert tracks that don't have a toplevel GameData/ directory for d, prefix in self.source_track_directories: self.report_progress("directory", d) logging.debug("track: prefix:\"%s\" - directory:\"%s\"", prefix, d) source_directory = os.path.normpath(d) if self.cfg.single_gamedata: target_gamedata_directory = os.path.join( target_directory, "GameData") else: target_gamedata_directory = os.path.join( target_directory, os.path.relpath(source_directory, self.source_directory), "GameData") logging.info("converting track %s to %s", source_directory, target_gamedata_directory) # create directory hierachy modname = os.path.basename(d) if prefix: self.copy_directory_hierachy( source_directory, os.path.join(target_gamedata_directory, "Locations", prefix, modname)) else: self.copy_directory_hierachy( source_directory, os.path.join(target_gamedata_directory, "Locations", modname)) logging.debug("modname: %s", modname) if prefix: target_d = os.path.join(target_gamedata_directory, "Locations", prefix) else: target_d = os.path.join(target_gamedata_directory, "Locations") logging.debug("track: source_directory: %s", source_directory) logging.debug("track: target_directory: %s", target_d) self.convert_mod_subdir(os.path.dirname(source_directory), target_d, modname, modname) self.report_progress("finished")
if __name__ == "__main__": parser = argparse.ArgumentParser(description='rFactor .veh/.gen processor') parser.add_argument('DIRECTORY', action='store', type=str, help='directory containing .gen and .veh files') parser.add_argument('-c', '--check', action='store_true', default=False, help="check the file for errors") parser.add_argument('-v', '--verbose', action='store_true', default=False, help="be more verbose") parser.add_argument('--add-searchpath', metavar="PATH", help="be more verbose") parser.add_argument('-f', '--fix', action='store_true', default=False, help="try to fix all detected errors") args = parser.parse_args() rfactortools.process_gen_directory(args.DIRECTORY, args.fix, sys.stdout) # EOF #
def convert_all(self, target_directory): self.report_progress("start") target_directory = os.path.normpath(target_directory) # convert GameData/ directories for d in self.source_gamedata_directories: self.report_progress("directory", d) self.source_gamedata_directory = os.path.normpath(d) if self.cfg.single_gamedata: target_gamedata_directory = os.path.join(target_directory, "GameData") else: target_gamedata_directory = os.path.join(target_directory, os.path.relpath(self.source_gamedata_directory, self.source_directory)) logging.info("converting GameData %s to %s", self.source_gamedata_directory, target_gamedata_directory) self.copy_directory_hierachy(self.source_gamedata_directory, target_gamedata_directory) self.convert_gamedata(self.source_gamedata_directory, target_gamedata_directory) try: rfactortools.process_gen_directory(target_gamedata_directory, True, io.StringIO()) except Exception: logging.exception("rfactortools.process_gen_directory") # convert tracks that don't have a toplevel GameData/ directory for d, prefix in self.source_track_directories: self.report_progress("directory", d) logging.debug("track: prefix:\"%s\" - directory:\"%s\"", prefix, d) source_directory = os.path.normpath(d) if self.cfg.single_gamedata: target_gamedata_directory = os.path.join(target_directory, "GameData") else: target_gamedata_directory = os.path.join(target_directory, os.path.relpath(source_directory, self.source_directory), "GameData") logging.info("converting track %s to %s", source_directory, target_gamedata_directory) # create directory hierachy modname = os.path.basename(d) if prefix: self.copy_directory_hierachy(source_directory, os.path.join(target_gamedata_directory, "Locations", prefix, modname)) else: self.copy_directory_hierachy(source_directory, os.path.join(target_gamedata_directory, "Locations", modname)) logging.debug("modname: %s", modname) if prefix: target_d = os.path.join(target_gamedata_directory, "Locations", prefix) else: target_d = os.path.join(target_gamedata_directory, "Locations") logging.debug("track: source_directory: %s", source_directory) logging.debug("track: target_directory: %s", target_d) self.convert_mod_subdir(os.path.dirname(source_directory), target_d, modname, modname) self.report_progress("finished")