From 8ad2f8e67b2ec0fb6799d9e1d18a8572e2579aaf Mon Sep 17 00:00:00 2001 From: Andreas Date: Thu, 2 Nov 2023 20:59:55 +0100 Subject: [PATCH] Add argparsing --- README.md | 8 ++++++++ d2lootfilter/filter.py | 13 ++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1efd268..6a1d333 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/d2lootfilter/filter.py b/d2lootfilter/filter.py index d34c605..5992976 100644 --- a/d2lootfilter/filter.py +++ b/d2lootfilter/filter.py @@ -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: