Last active
July 18, 2025 07:05
-
-
Save Miuler/a8c2b581ebcaa0254350e528a009bb0e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Define el comando "pullall" que busca y actualiza repositorios Git en subdirectorios. | |
| def "fetchall" [] { | |
| # 1. Busca recursivamente todos los directorios '.git' desde la ubicación actual. | |
| # '**' es un comodín que significa "en cualquier subdirectorio". | |
| # Luego, obtiene el directorio padre de cada '.git' encontrado, que es la raíz del repositorio. | |
| print $"🔎 Buscando repositorios de Git en subdirectorios..." | |
| let repo_paths = (glob -F '**/.git' | path dirname) | |
| # Verifica si se encontró algún repositorio. | |
| if ($repo_paths | is-empty) { | |
| print "❌ No se encontraron repositorios de Git en los subdirectorios." | |
| return | |
| } | |
| print $"✅ Se encontraron ($repo_paths | length) repositorios. Actualizando..." | |
| # 2. Itera sobre cada ruta de repositorio encontrada. | |
| $repo_paths | each { |repo_path| | |
| print $"\n--- 📂 Actualizando en: ($repo_path) ---" | |
| # 3. Usa un bloque 'try/catch' para manejar errores de forma segura. | |
| # Si 'git pull' falla en un repo, el script no se detendrá, sino que continuará con el siguiente. | |
| try { | |
| # Ejecuta los comandos dentro del directorio del repositorio sin cambiar | |
| # permanentemente el directorio actual de tu terminal. | |
| do -i { | |
| cd $repo_path | |
| git fetch --all | |
| } | |
| } catch { | |
| print $"⚠️ Error al actualizar '($repo_path)'. Revisa el repositorio manualmente." | |
| } | |
| } | |
| print "\n🎉 Proceso completado." | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment