Add argparsing

This commit is contained in:
2023-11-02 20:59:55 +01:00
parent fe7aed4c0a
commit 8ad2f8e67b
2 changed files with 18 additions and 3 deletions

View File

@@ -1,2 +1,10 @@
# README
Work in Progress basic Diablo 2 lootfilter.
Run as:
d2filter /path/to/filter /path/to/d2/data/dir
To use example filter:
d2filter example.filter "C:\Program Files (x86)\Diablo II Resurrected\Data"
See example.filter

View File

@@ -1,3 +1,4 @@
from argparse import ArgumentParser
from pathlib import Path
import sys
from d2lootfilter import data
@@ -7,19 +8,25 @@ from d2lootfilter.writer import FilterRemover, FilterRuleWriter
def main():
# TODO: Parse args
data_dir = Path("C:\\Program Files (x86)\\Diablo II Resurrected\\Data")
parser = ArgumentParser()
parser.add_argument("filter")
parser.add_argument("data_dir")
args = parser.parse_args()
filter = args.filter
data_dir = Path(args.data_dir)
# Remove any previous rules
remover = FilterRemover(data_dir)
remover.remove_all_rules()
if filter == "remove":
return
# Init data
data.init(data_dir)
# Parse filter for rules
rules = []
with open("example.filter") as f:
with open(filter) as f:
lines = f.read().splitlines()
instructions = parse_format(lines)
for instr in instructions: