aboutsummaryrefslogtreecommitdiff
path: root/yapymake/args.py
diff options
context:
space:
mode:
Diffstat (limited to 'yapymake/args.py')
-rw-r--r--yapymake/args.py23
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))