read api key vault cmd from sublime settings and wakatime config file

This commit is contained in:
Alan Hamlett 2022-11-12 12:32:43 -06:00
parent a387c08b44
commit 5077c5e290
1 changed files with 23 additions and 13 deletions

View File

@ -186,6 +186,7 @@ class ApiKey(object):
self._key = key self._key = key
return self._key return self._key
configs = None
try: try:
configs = parseConfigFile(CONFIG_FILE) configs = parseConfigFile(CONFIG_FILE)
if configs: if configs:
@ -194,27 +195,36 @@ class ApiKey(object):
if key: if key:
self._key = key self._key = key
return self._key return self._key
apiKeyFromVault = self.__readFromVaultCmd()
if apiKeyFromVault:
self._key = apiKeyFromVault
return self._key
except: except:
pass pass
key = self.api_key_from_vault_cmd(configs)
if key:
self._key = key
return self._key
return self._key return self._key
def __readFromVaultCmd(self): def api_key_from_vault_cmd(self, configs):
apiKeyCmd = SETTINGS.get('api_key_vault_cmd') vault_cmd = SETTINGS.get('api_key_vault_cmd')
if not apiKeyCmd: if not vault_cmd and configs:
try:
if configs.has_option('settings', 'api_key_vault_cmd'):
vault_cmd = configs.get('settings', 'api_key_vault_cmd')
except:
pass
if not vault_cmd or not vault_cmd.strip():
return None return None
try: try:
p = Popen(apiKeyCmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) process = Popen(vault_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
stdout, stderr = p.communicate() stdout, stderr = process.communicate()
if p.returncode == 0: retcode = process.poll()
return stdout.strip() if retcode:
log(WARNING, u(stderr)) log(ERROR, 'Vault command error ({retcode}): {stderr}'.format(retcode=retcode, stderr=u(stderr)))
return None
return stdout.strip() or None
except: except:
log(ERROR, traceback.format_exc()) log(ERROR, traceback.format_exc())