<# .SYNOPSIS Script per impostare username e email Git su tutti i repository nella cartella di progetto .DESCRIPTION Questo script cerca tutti i repository Git nella directory radice del progetto e imposta il nome utente e l'email specificati per ciascuno di essi. .PARAMETER Username Il nome utente Git da impostare .PARAMETER Email L'indirizzo email Git da impostare .PARAMETER RootDir La directory radice in cui cercare i repository Git .EXAMPLE .\set-git-config-new.ps1 -Username "Mario Rossi" -Email "mario.rossi@intesasanpaolo.com" -RootDir "C:\Users\MarioRossi\progetti" #> param ( [Parameter(Mandatory=$true)] [string]$Username, [Parameter(Mandatory=$true)] [string]$Email, [Parameter(Mandatory=$true)] [string]$RootDir ) # Funzione per verificare se una directory è un repository Git function Is-GitRepository { param ([string]$Directory) return (Test-Path -Path "$Directory\.git" -PathType Container) } # Funzione per impostare la configurazione Git in un repository function Set-GitConfig { param ( [string]$RepoPath, [string]$Username, [string]$Email ) try { Push-Location $RepoPath Write-Host "Configurazione di $RepoPath" -ForegroundColor Cyan # Imposta nome utente e email git config user.name "$Username" git config user.email "$Email" # Verifica che le impostazioni siano state applicate correttamente $configName = git config user.name $configEmail = git config user.email if ($configName -eq $Username -and $configEmail -eq $Email) { Write-Host "Configurazione completata con successo" -ForegroundColor Green } else { Write-Host "Errore nella configurazione" -ForegroundColor Red } } catch { Write-Host "Errore durante la configurazione: $_" -ForegroundColor Red } finally { Pop-Location } } # Verifica se la directory radice esiste if (-not (Test-Path -Path $RootDir)) { Write-Host "La directory $RootDir non esiste!" -ForegroundColor Red exit 1 } # Trova tutte le directory di primo livello nella directory radice $directories = Get-ChildItem -Path $RootDir -Directory # Contatori per statistiche $totalRepos = 0 $successfulRepos = 0 Write-Host "Ricerca dei repository Git in $RootDir..." -ForegroundColor Yellow # Itera su tutte le directory di primo livello foreach ($dir in $directories) { $dirPath = $dir.FullName # Verifica se la directory è un repository Git if (Is-GitRepository -Directory $dirPath) { $totalRepos++ Write-Host "Repository trovato: $dirPath" -ForegroundColor Blue # Imposta la configurazione Git Set-GitConfig -RepoPath $dirPath -Username $Username -Email $Email $successfulRepos++ } } Write-Host "" Write-Host "====== Riepilogo ======" -ForegroundColor Magenta Write-Host "Repository trovati: $totalRepos" -ForegroundColor White Write-Host "Repository configurati: $successfulRepos" -ForegroundColor White if ($totalRepos -eq 0) { Write-Host "Nessun repository Git trovato nella directory $RootDir" -ForegroundColor Yellow } elseif ($totalRepos -eq $successfulRepos) { Write-Host "Tutti i repository sono stati configurati correttamente!" -ForegroundColor Green } else { Write-Host "Alcuni repository non sono stati configurati correttamente." -ForegroundColor Red }