moved export commands to only run when unlocked vault. updated unset session variable only if it is set

This commit is contained in:
2022-09-07 22:00:03 -04:00
parent a5ca8d2207
commit 5032946e14

View File

@@ -438,28 +438,29 @@ if __name__ == "__main__":
bitwarden_status = json.loads(((subprocess.run([bitwarden_cli_executable, 'status'], capture_output=True)).stdout).decode())
logger.debug("Bitwarden Status: {}".format(bitwarden_status))
if bitwarden_status['status'] == "locked":
logger.info("Logged in successfully")
logger.info("Successfully Logged in")
bitwarden_session_key = (subprocess.run([bitwarden_cli_executable, 'unlock', vault_password, '--raw', '--nointeraction'], capture_output=True).stdout).decode()
if bitwarden_session_key:
#logger.debug("Session key: {}".format(bitwarden_session_key))
# logger.debug("Session key: {}".format(bitwarden_session_key))
logger.info("Successfully unlocked vault")
os.environ["BW_SESSION"] = bitwarden_session_key
# export to csv and json
logger.info("Exporting vault to both CSV and JSON files.")
logger.debug("Exporting vault to CSV.")
logger.debug((subprocess.run([bitwarden_cli_executable, 'export', '--output', os.path.join(script_directory, 'export.csv') , '--format', 'csv'], capture_output=True).stdout).decode())
logger.debug("Exporting vault to JSON.")
logger.debug((subprocess.run([bitwarden_cli_executable, 'export', '--output', os.path.join(script_directory, 'export.json'), '--format', 'json'], capture_output=True).stdout).decode())
else:
logger.error("Unable to unlock vault, please check vault password")
else:
logger.error("Unable to login to account, please check API credentials")
# export to csv and json
logger.info("Exporting vault to both CSV and JSON files.")
logger.debug("Exporting vault to CSV.")
logger.debug((subprocess.run([bitwarden_cli_executable, 'export', '--output', os.path.join(script_directory, 'export.csv') , '--format', 'csv'], capture_output=True).stdout).decode())
logger.debug("Exporting vault to JSON.")
logger.debug((subprocess.run([bitwarden_cli_executable, 'export', '--output', os.path.join(script_directory, 'export.json'), '--format', 'json'], capture_output=True).stdout).decode())
del os.environ['BW_CLIENTID']
del os.environ['BW_CLIENTSECRET']
del os.environ["BW_SESSION"]
if "BW_SESSION" in os.environ:
del os.environ["BW_SESSION"]
logger.info("Logging out of your Bitwarden account")
logger.debug((subprocess.run([bitwarden_cli_executable, 'logout'], capture_output=True).stdout).decode())