poikilos
3 years ago
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