Don't execute pass if it's not needed

This commit is contained in:
lufte 2019-08-12 17:15:59 -03:00
parent 2624220778
commit b81029bcd8
1 changed files with 11 additions and 8 deletions

View File

@ -174,7 +174,17 @@ def main(arguments):
if not selection:
return ExitCodes.SUCCESS
secret = pass_(selection, arguments.io_encoding)
# If username-target is path and user asked for username-only, we don't need to run pass
secret = None
if not (arguments.username_target == 'path' and arguments.username_only):
secret = pass_(selection, arguments.io_encoding)
# Match password
match = re.match(arguments.password_pattern, secret)
if not match:
stderr('Failed to match password pattern on secret!')
return ExitCodes.COULD_NOT_MATCH_PASSWORD
password = match.group(1)
# Match username
target = selection if arguments.username_target == 'path' else secret
@ -184,13 +194,6 @@ def main(arguments):
return ExitCodes.COULD_NOT_MATCH_USERNAME
username = match.group(1)
# Match password
match = re.match(arguments.password_pattern, secret)
if not match:
stderr('Failed to match password pattern on secret!')
return ExitCodes.COULD_NOT_MATCH_PASSWORD
password = match.group(1)
if arguments.username_only:
fake_key_raw(username)
elif arguments.password_only: