diff --git a/constants.py b/constants.py index 18e0047..f569c46 100644 --- a/constants.py +++ b/constants.py @@ -23,7 +23,7 @@ GENERAL_CONF_PATH = SERVICE_DIR + '/general.reporter.json' -CLI_TRUE_KEYWORD_ARRAY = ['yes', 'y', 'true', '1', 1] +CLI_TRUE_KEYWORD_ARRAY = ['yes', 'y', 'true', 'True', '1', 1] SESSUID_FILENAME = 'sess-uuid' diff --git a/main.py b/main.py index c6a89e1..1317932 100644 --- a/main.py +++ b/main.py @@ -35,12 +35,15 @@ def number_format(num, places=2): crossAccounts = _cli_options['crossAccounts'] workerCounts = _cli_options['workerCounts'] beta = _cli_options['beta'] +nowrite = _cli_options['nowrite'] + # print(crossAccounts) DEBUG = True if debugFlag in _C.CLI_TRUE_KEYWORD_ARRAY or debugFlag is True else False testmode = True if testmode in _C.CLI_TRUE_KEYWORD_ARRAY or testmode is True else False crossAccounts = True if crossAccounts in _C.CLI_TRUE_KEYWORD_ARRAY or crossAccounts is True else False beta = True if beta in _C.CLI_TRUE_KEYWORD_ARRAY or beta is True else False +nowrite = True if nowrite in _C.CLI_TRUE_KEYWORD_ARRAY or nowrite is True else False _cli_options['crossAccounts'] = crossAccounts @@ -97,7 +100,9 @@ def number_format(num, places=2): shutil.rmtree(_C.ADMINLTE_DIR + '/' + file) acctLoop = 0 -CfnTrailObj = CfnTrail() + +if nowrite == False: + CfnTrailObj = CfnTrail() for acctId, cred in rolesCred.items(): acctLoop = acctLoop + 1 @@ -193,7 +198,7 @@ def number_format(num, places=2): print(f"Error decoding JSON: {e}") exit() - if testmode == False: + if testmode == False and nowrite == False: cfnAdditionalStr = None if mpeid is not None: cfnAdditionalStr = " --mpeid:{}".format(mpeid) @@ -233,7 +238,7 @@ def number_format(num, places=2): pool.starmap(Screener.scanByService, input_ranges) pool.close() - if testmode == False: + if testmode == False and nowrite == False: CfnTrailObj.deleteStack() ## diff --git a/utils/ArguParser.py b/utils/ArguParser.py index cc3a02b..7aaccbf 100644 --- a/utils/ArguParser.py +++ b/utils/ArguParser.py @@ -79,7 +79,13 @@ class ArguParser: "required": False, "default": False, "help": "Enable Beta features" + }, + 'nowrite': { + "required": False, + "default": False, + "help": "Enable Read-Only mode, no cloudformation required" } + } @staticmethod