diff --git a/dot_local/bin/executable_vault-token-renew.sh b/dot_local/bin/executable_vault-token-renew.sh new file mode 100644 index 0000000..c6ca363 --- /dev/null +++ b/dot_local/bin/executable_vault-token-renew.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Auto-renew Vault token if it exists and is renewable +VAULT_TOKEN_FILE="$HOME/.vault-token" + +if [ ! -f "$VAULT_TOKEN_FILE" ]; then + exit 0 +fi + +export VAULT_ADDR="https://vault.viktorbarzin.me" +export VAULT_TOKEN="$(cat "$VAULT_TOKEN_FILE")" + +# Check if token is still valid and renewable, then renew +if vault token lookup -format=json 2>/dev/null | /usr/bin/python3 -c "import sys,json; d=json.load(sys.stdin)['data']; sys.exit(0 if d.get('renewable') else 1)" 2>/dev/null; then + vault token renew > /dev/null 2>&1 +fi diff --git a/private_Library/LaunchAgents/me.viktorbarzin.vault-token-renew.plist b/private_Library/LaunchAgents/me.viktorbarzin.vault-token-renew.plist new file mode 100644 index 0000000..5d193f8 --- /dev/null +++ b/private_Library/LaunchAgents/me.viktorbarzin.vault-token-renew.plist @@ -0,0 +1,26 @@ + + + + + Label + me.viktorbarzin.vault-token-renew + ProgramArguments + + /bin/bash + /Users/viktorbarzin/.local/bin/vault-token-renew.sh + + EnvironmentVariables + + PATH + /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin + + StartInterval + 28800 + RunAtLoad + + StandardOutPath + /tmp/vault-token-renew.log + StandardErrorPath + /tmp/vault-token-renew.log + +