Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
try:
subprocess.run(
command,
universal_newlines=True,
shell=True,
check=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
).stdout
except subprocess.CalledProcessError as ex:
log.error("Failed to get keychains: %s", ex)
raise
# Validate that the new keychain is there
new_keychains = Keychain.list_keychains(domain="user")
for path in previous_keychains:
if path not in new_keychains:
raise Exception("Previous keychain missing when checking keychains: " + path)
new_path_exists = False
# /var and /private/var are the same, but we don't know which macOS is
# going to send back, so we have to normalize out the symlinks to do
# the comparisons
for new_path in new_keychains:
if os.path.realpath(new_path) == os.path.realpath(self.path):
new_path_exists = True
break
if not new_path_exists: