1 changed files with 73 additions and 0 deletions
			
			
		@ -0,0 +1,73 @@ | 
				
			|||||
 | 
					#!/usr/bin/env python3 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import sys | 
				
			||||
 | 
					import os | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					def error(msg): | 
				
			||||
 | 
					    sys.stderr.write("{}\n".format(msg)) | 
				
			||||
 | 
					    sys.stderr.flush() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					def add_depends(mod_path): | 
				
			||||
 | 
					    depends_path = os.path.join(mod_path, "depends.txt") | 
				
			||||
 | 
					    if os.path.isfile(depends_path): | 
				
			||||
 | 
					        error("WARNING: Writing {} will be skipped since it exists." | 
				
			||||
 | 
					              "".format(depends_path)) | 
				
			||||
 | 
					        return | 
				
			||||
 | 
					    mod_conf = os.path.join(mod_path, "mod.conf") | 
				
			||||
 | 
					    if not os.path.isfile(mod_conf): | 
				
			||||
 | 
					        error("WARNING: Writing {} will be skipped since {} does" | 
				
			||||
 | 
					              " not exist." | 
				
			||||
 | 
					              "".format(depends_path, mod_conf)) | 
				
			||||
 | 
					        return | 
				
			||||
 | 
					    optional_depends = [] | 
				
			||||
 | 
					    depends = [] | 
				
			||||
 | 
					    lineN = 0 | 
				
			||||
 | 
					    with open(mod_conf, 'r') as ins: | 
				
			||||
 | 
					        for rawL in ins: | 
				
			||||
 | 
					            lineN += 1  # Counting numbers start at 1. | 
				
			||||
 | 
					            line = rawL.strip() | 
				
			||||
 | 
					            if len(line) < 1: | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            if line.startswith("#"): | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            signI = line.find("=") | 
				
			||||
 | 
					            if signI < 0: | 
				
			||||
 | 
					                print("{}:{}: Warning: There is no '='" | 
				
			||||
 | 
					                      "".format(mod_conf, lineN)) | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            if signI < 1: | 
				
			||||
 | 
					                print("{}:{}: Warning: starts with '='" | 
				
			||||
 | 
					                      "".format(mod_conf, lineN)) | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            name = line[:signI].strip() | 
				
			||||
 | 
					            value = line[signI+1:].strip() | 
				
			||||
 | 
					            if name == "depends": | 
				
			||||
 | 
					                depends = [depend.strip() for depend in value.split(",")] | 
				
			||||
 | 
					            elif name == "optional_depends": | 
				
			||||
 | 
					                optional_depends = [depend.strip() for depend in value.split(",")] | 
				
			||||
 | 
					    print("") | 
				
			||||
 | 
					    mod_dir_name = os.path.basename(mod_path) | 
				
			||||
 | 
					    print("mod: {}".format(mod_dir_name)) | 
				
			||||
 | 
					    print("* depends: {}".format(depends)) | 
				
			||||
 | 
					    print("* optional_depends: {}".format(optional_depends)) | 
				
			||||
 | 
					    with open(depends_path, 'w') as outs: | 
				
			||||
 | 
					        for depend in depends: | 
				
			||||
 | 
					            outs.write("{}\n".format(depend)) | 
				
			||||
 | 
					        for depend in optional_depends: | 
				
			||||
 | 
					            outs.write("{}?\n".format(depend)) | 
				
			||||
 | 
					    print("* wrote {}/depends.txt".format(mod_dir_name)) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					if __name__ == "__main__": | 
				
			||||
 | 
					    parent = os.path.realpath(".") | 
				
			||||
 | 
					    modpack_conf = os.path.join(parent, "modpack.conf") | 
				
			||||
 | 
					    if os.path.isfile(modpack_conf): | 
				
			||||
 | 
					        for sub in os.listdir(parent): | 
				
			||||
 | 
					            subPath = os.path.join(parent, sub) | 
				
			||||
 | 
					            if sub.startswith("."): | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            if not os.path.isdir(subPath): | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            add_depends(subPath) | 
				
			||||
 | 
					    else: | 
				
			||||
 | 
					        add_depends(parent) | 
				
			||||
					Loading…
					
					
				
		Reference in new issue