From ea7797f9296fd8e64ae6e801200ce3a864b90bc1 Mon Sep 17 00:00:00 2001 From: mattmc3 Date: Sat, 1 Feb 2025 13:58:55 -0500 Subject: [PATCH] feat(otp): XDG basedir support, or user value for OTP_HOME otp plugin now uses the following logic for its home: - If $OTP_HOME is set by the user, use that value - If ~/.otp dir already exists, use that value - If XDG_DATA_HOME is set, use $XDG_DATA_HOME/otp - Else fallback to ~/.otp --- plugins/otp/README.md | 4 +++- plugins/otp/otp.plugin.zsh | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/otp/README.md b/plugins/otp/README.md index 52ad9525b..e3dbece5a 100644 --- a/plugins/otp/README.md +++ b/plugins/otp/README.md @@ -19,4 +19,6 @@ Provided aliases: - `ot`: generates a MFA code based on the given key and copies it to the clipboard (on Linux it relies on xsel, on MacOS X it uses pbcopy instead). -The plugin uses `$HOME/.otp` to store its internal files. +The plugin stores its internal files in `$OTP_HOME`, which can be set in your zshrc. +If `$OTP_HOME` is not set it defaults to either `$HOME/.otp` or `$XDG_DATA_HOME/otp`, +depending on whether `~/.otp` already exists, or whether `$XDG_DATA_HOME` is set. diff --git a/plugins/otp/otp.plugin.zsh b/plugins/otp/otp.plugin.zsh index 8be125c93..aec9840b7 100644 --- a/plugins/otp/otp.plugin.zsh +++ b/plugins/otp/otp.plugin.zsh @@ -1,4 +1,10 @@ -export OTP_HOME=~/.otp +if [[ -z "$OTP_HOME" ]]; then + if [[ ! -d "$HOME/.otp" ]] && [[ -n "$XDG_DATA_HOME" ]]; then + export OTP_HOME="$XDG_DATA_HOME/otp" + else + export OTP_HOME=~/.otp + fi +fi mkdir -p $OTP_HOME function ot () {