ಠ_ಠ.ps1

Reizēm nākas darboties ar veciem un veciem rīkiem, kuriem ir problēmas darboties caur proxy un neviens no ieteiktajiem risinājumiem nelīdz. Varētu, protams, lūgt administratorus nākt talkā risināt problēmu ar proxy settingiem, bet tad būtu jārunā ar cilvēkiem.

Tā kā negribās lietot korektus risinājumus, tad talkā nāk spēks un liels āmurs.

Cik skatījos, tad Maven cītīgi un nesekmīgi mēģina lejuplādēt dažādus failus. Bet ja es failu novelku pareizajā mapē pats, tad process tomēr turpinās tālāk pat pēc taimauta. Perfekti! Redirectējot Mavena outputu uz log.txt, es varu uzrakstīt savu powershell skriptu, kas šo logu atkal un atkal pārlasīs, meklējot, kurus failus vajag lejuplādēt un tad novietot nepieciešamajā repozitorija folderī:

$lastLine = 0

while($true)
{
    $i = 0
    foreach($line in Get-Content "log.txt") 
    {
        if($i -ge $lastLine)
        {
            #Write-Output "$($i): $($line)"
            if($line.StartsWith("Downloading: ") -and !$line.StartsWith("Downloading: file://"))
            {
                $url = $line.Remove(0, 13);
                Write-Output "Getting: $($url)"
   
                $pattern = "repository/public"
                $dest = "... repository taka ..." + $url.Remove(0, $url.IndexOf($pattern) + $pattern.Length).Replace("/", "\")

                $folder = Split-Path -Path $dest
                if(!(Test-Path -Path $folder))
                {
                    New-Item -ItemType Directory -Path $folder
                }

                Invoke-WebRequest -Uri $url -OutFile $dest
            }
        }
        $i += 1
    }
    $lastLine = $i

    Start-Sleep -Seconds 2
}

Lēni, jo jāgaida uz katra faila taimautu, bet beigās visu veiksmīgi novilka un uzstādīja.

 

P.S. Skriptu pieglabāju ar nosaukumu ಠ_ಠ.ps1, kas šķita atbilstoši tam, ko biju radījis.

Leave a Comment