iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору PowerShell: Код: function GitPull { param ( # Путь к локальному репозиторию [Parameter( Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = 'Введите путь к локальному репозиторию')] [ValidateNotNullOrEmpty()] [Alias('FullName')] [string] $Path ) begin { Push-Location } process { if ($Path | Get-ChildItem -Dir -Force | Where-Object Name -eq '.git') { Write-Host -NoNewline ("{0}: {1}`t" -f ('GIT repository', $Path)) Set-Location $Path git pull } } end { Pop-Location } } # Примеры: # Обновить конкретный репозиторий # GitPull -Path "C:\Distributives\Sources\Git\Author\Repo" # Обновить несколько указанных репозиториев # "C:\Distributives\Sources\Git\Author\Repo", "C:\Distributives\Sources\Git\Author2\Repo" | GitPull # Обновить все репозитории в указанной папке # Get-ChildItem "C:\Distributives\Sources\Git" -Recurse -Depth 1 | GitPull # Скрипт очень простой, переход в каталог репозитория и вызов git pull, больше ничего не умеет, авторизацию и т.п.. # Со временем люди могут закрыть репозиторий, запрос авторизации, приостановит скрипт, до авторизации или отмены авторизации (CTRL+C), после продолжит. # Если есть такие репозитории, лучше их исключить из авто-обновления или присутствовать при работе скрипта. |
|