diff --git a/bin/ai_token.sh b/bin/ai_token.sh index 9efb918..6c189fd 100755 --- a/bin/ai_token.sh +++ b/bin/ai_token.sh @@ -5,7 +5,7 @@ #Author : Sora Rosero One #Generated by : Claude Code (claude-3-7-sonnet-20250219) #Created : 2025/03/21 16:06:20 -#Modified : 2025/03/21 17:14:59 +#Modified : 2025/04/07 07:45:22 #Version : 1.0.0 #Use Notes : # Gestiona múltiples tokens de IA definidos en ai.tokens @@ -99,15 +99,42 @@ load_providers() { done < <(grep -v "^#" "$config_file") } +# Función para leer la ruta personalizada para los tokens desde config +get_tokens_path() { + local config_file="$BIN_HOME/$BIN_BASE/$BIN_CFGS/ai_tokens.path" + local default_path="$BIN_HOME/$BIN_SOPS" + + if [ -f "$config_file" ]; then + # Leer la ruta del archivo de configuración y expandir la tilde (~) + local path_from_config=$(cat "$config_file" | tr -d '\r\n') + path_from_config="${path_from_config/#\~/$HOME}" + + # Verificar que la ruta exista o crearla + if [ ! -d "$path_from_config" ]; then + mkdir -p "$path_from_config" 2>/dev/null + # Si no se pudo crear, usar la ruta por defecto + if [ ! -d "$path_from_config" ]; then + echo "$default_path" + return + fi + fi + + echo "$path_from_config" + else + echo "$default_path" + fi +} + # Función para encriptar token con SOPS encrypt_token() { local provider_code="$1" local token="$2" - local output_file="$BIN_HOME/$BIN_SOPS/${provider_code}.sops.yaml" + local tokens_dir=$(get_tokens_path) + local output_file="${tokens_dir}/${provider_code}.sops.yaml" local temp_file="/tmp/ai_token_$$" # Crear directorio si no existe - mkdir -p "$BIN_HOME/$BIN_SOPS" + mkdir -p "$tokens_dir" # Codificar el token en base64 local token_base64=$(echo -n "$token" | base64) @@ -218,8 +245,9 @@ main() { provider_code="$selected_provider_code" provider_desc="$selected_provider_desc" - # Verificar archivo de token si ya existe - sops_file="$BIN_HOME/$BIN_SOPS/${provider_code}.sops.yaml" + # Obtener la ruta de tokens y verificar si el archivo ya existe + tokens_dir=$(get_tokens_path) + sops_file="${tokens_dir}/${provider_code}.sops.yaml" if [ -f "$sops_file" ]; then # Preguntar con dialog_yesno de console.lib dialog_yesno "${aimsg_107}"