diff options
Diffstat (limited to 'yapymake/args.py')
-rw-r--r-- | yapymake/args.py | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/yapymake/args.py b/yapymake/args.py index 2252855..3f9d842 100644 --- a/yapymake/args.py +++ b/yapymake/args.py @@ -1,9 +1,8 @@ import argparse from dataclasses import dataclass -import io import os import sys -from typing import List, TextIO +from typing import List, Optional, TextIO from . import DESCRIPTION, VERSION @@ -95,21 +94,25 @@ class Args: self.touch = parsed_args.touch self.targets_or_macros = parsed_args.targets_or_macros -def parse(cli_args: List[str] = None, env_makeflags: str = None) -> Args: +def parse(cli_args: Optional[List[str]] = None, env_makeflags: Optional[str] = None) -> Args: if cli_args is None: - cli_args = sys.argv[1:] + real_cli_args = sys.argv[1:] + else: + real_cli_args = cli_args if env_makeflags is None: - env_makeflags = os.environ.get('MAKEFLAGS', '') + real_env_makeflags = os.environ.get('MAKEFLAGS', '') + else: + real_env_makeflags = env_makeflags # per POSIX, we accept option letters without a leading -, so to simplify we prepend a - now # TODO allow macro definitions in MAKEFLAGS - if len(env_makeflags) > 0 and not env_makeflags.startswith('-'): - env_makeflags = '-' + env_makeflags + if len(real_env_makeflags) > 0 and not real_env_makeflags.startswith('-'): + real_env_makeflags = '-' + real_env_makeflags - if len(env_makeflags) > 0: - all_args = [env_makeflags, *cli_args] + if len(real_env_makeflags) > 0: + all_args = [real_env_makeflags, *real_cli_args] else: - all_args = cli_args + all_args = real_cli_args return Args(parser.parse_args(all_args)) |