diff --git a/bin/cversion_token.sh b/bin/cversion_token.sh index f63ffca..47014dd 100755 --- a/bin/cversion_token.sh +++ b/bin/cversion_token.sh @@ -136,8 +136,97 @@ manage_version_token() { fi fi - # Solicitar token de acceso - dialog_input_pass "$token_prompt" "$token_helper" + # Mostrar pantalla de ayuda para tokens + show_token_help() { + local vcs_type="$1" + local help_text="" + + case "$vcs_type" in + "GitHub") + help_text="AYUDA PARA TOKENS DE GITHUB\n\n" + help_text+="Para generar un token personal en GitHub:\n\n" + help_text+="1. Inicie sesión en GitHub y vaya a Configuración -> Configuración de desarrollador -> Tokens de acceso personal\n" + help_text+=" URL: https://github.com/settings/tokens\n\n" + help_text+="2. Haga clic en 'Generar nuevo token'\n\n" + help_text+="3. Proporcione una nota descriptiva para el token\n\n" + help_text+="4. Seleccione los permisos necesarios:\n" + help_text+=" - Para uso general: repo, workflow, read:org\n" + help_text+=" - Para acceso más limitado, solo seleccione lo que necesite\n\n" + help_text+="5. Haga clic en 'Generar token'\n\n" + help_text+="6. Copie el token inmediatamente (solo se muestra una vez)" + ;; + "GitLab") + help_text="AYUDA PARA TOKENS DE GITLAB\n\n" + help_text+="Para generar un token personal en GitLab:\n\n" + help_text+="1. Inicie sesión en GitLab y vaya a Preferencias -> Tokens de acceso\n" + help_text+=" URL: https://gitlab.com/-/profile/personal_access_tokens\n\n" + help_text+="2. Proporcione un nombre para el token\n\n" + help_text+="3. Opcionalmente, establezca una fecha de vencimiento\n\n" + help_text+="4. Seleccione los permisos necesarios:\n" + help_text+=" - Para uso general: api, read_repository, write_repository\n" + help_text+=" - Para acceso más limitado, solo seleccione lo que necesite\n\n" + help_text+="5. Haga clic en 'Crear token de acceso personal'\n\n" + help_text+="6. Copie el token inmediatamente (solo se muestra una vez)" + ;; + "Forgejo") + help_text="AYUDA PARA TOKENS DE FORGEJO/CODEBERG\n\n" + help_text+="Para generar un token personal en Forgejo o Codeberg:\n\n" + help_text+="1. Inicie sesión en su instancia de Forgejo o en Codeberg\n\n" + help_text+="2. Vaya a Configuración -> Aplicaciones\n\n" + help_text+="3. En la sección 'Generar nuevo token', proporcione un nombre\n\n" + help_text+="4. Seleccione los permisos necesarios (alcances):\n" + help_text+=" - Para uso general: repo, repo:status\n" + help_text+=" - Para acceso más limitado, solo seleccione lo que necesite\n\n" + help_text+="5. Haga clic en 'Generar token'\n\n" + help_text+="6. Copie el token inmediatamente (solo se muestra una vez)" + ;; + esac + + dialog --backtitle "${title}" --title "Ayuda sobre tokens de $vcs_type" --msgbox "$help_text" 20 75 + } + + # Función personalizada para solicitar token con botón de ayuda + token_password_dialog() { + local prompt="$1" + local helper="$2" + local vcs_type="$3" + local button=0 + local token="" + + while [ $button -ne 1 ]; do + # Crear diálogo temporal + tempfile=$(mktemp) + + # Mostrar diálogo con 3 botones (Cancelar, OK, Ayuda) + dialog --backtitle "${title}" --title "${apps_title}" \ + --passwordbox "\n$prompt\n$helper" 12 70 \ + --extra-button --extra-label "Ayuda" 2>"$tempfile" + + button=$? + + # Procesar resultado según el botón presionado + case $button in + 0) # OK + value=$(cat "$tempfile") + codex=0 + rm -f "$tempfile" + return 0 + ;; + 1) # Cancelar + codex=1 + rm -f "$tempfile" + return 1 + ;; + 3) # Botón extra (Ayuda) + rm -f "$tempfile" + show_token_help "$vcs_type" + ;; + esac + done + } + + # Solicitar token de acceso con botón de ayuda + token_password_dialog "$token_prompt" "$token_helper" "$vcs_type" if [ $codex -ne 0 ]; then return 1 fi