vnrecode: add cli parameters for configuration

This commit is contained in:
OleSTEEP 2024-08-29 04:01:41 +03:00
parent e5fa49ad53
commit f240fdca5f
6 changed files with 109 additions and 33 deletions

View file

@ -1,8 +1,9 @@
import os.path
from argparse import Namespace, ArgumentParser
from dataclasses import dataclass
from sysconfig import get_path
from typing import Any
import tomllib
import os
@dataclass
@ -13,11 +14,30 @@ class Config:
@classmethod
def setup_config(cls):
default_config = os.path.join(get_path('purelib'), "vnrecode", "vnrecode.toml")
parser = ArgumentParser(prog="vnrecode",
description="Python utility to compress Visual Novel Resources"
)
parser.add_argument("source")
parser.add_argument("-c", "--config", default="vnrecode.toml")
parser.add_argument("source", help="SourceDir")
parser.add_argument("-c", "--config", default=default_config, help="ConfigFile")
parser.add_argument("-u", action="store_true", help="CopyUnprocessed")
parser.add_argument("-f", "--force", action="store_true", help="ForceCompress")
parser.add_argument("-m", "--mimic", action="store_true", help="MimicMode")
parser.add_argument("-s", "--silent", action="store_true", help="HideErrors")
parser.add_argument("--webprgba", action="store_true", help="WebpRGBA")
parser.add_argument("-j", "--jobs", type=int, help="Workers")
parser.add_argument("-ae", "--aext", help="Audio Extension")
parser.add_argument("-ab", "--abit", help="Audio Bitrate")
parser.add_argument("-id", "--idown", type=int, help="Image Downscale")
parser.add_argument("-ie", "--iext", help="Image Extension")
parser.add_argument("-ife", "--ifallext", help="Image Fallback Extension")
parser.add_argument("-il", "--ilossless", action="store_true", help="Image Lossless")
parser.add_argument("-iq", "--iquality", help="Image Quality")
parser.add_argument("--vcrf", help="Video CRF")
parser.add_argument("-vs", "--vskip", help="Video Skip")
parser.add_argument("-ve", "--vext", help="Video Extension")
parser.add_argument("-vc", "--vcodec", help="Video Codec")
args = parser.parse_args()
if os.path.isfile(args.config):
with open(args.config, "rb") as cfile: