PowerShell 6.0 Sürüm Araçları
Bildiğiniz gibi PowerShell'in bir sonraki sürümü açık kaynak ve çapraz platformdur. PowerShell v6'yı Windows'ta, Mac'te ve belirli Linux dağıtımlarında çalıştırabileceksiniz. Kodun tamamı şu anda alfa aşamasındadır ve PowerShell GitHub deposunda barındırılmaktadır. Burası ayrıca yüklemek ve test etmek için yeni yapıları indirebileceğiniz yerdir. Biraz geride kaldığımı itiraf etmeliyim ve bunun bir nedeni de yeni bir sürüm olup olmadığını sık sık kontrol etmememden kaynaklanıyor. Ben de bunu benim için yapacak ve hatta yeni kurulum paketlerini indirecek bir PowerShell modülü oluşturdum. En iyi yanı, bunun platformlar arası çalışması gerektiğidir.
PSReleaseTools adlı modülümde şu anda 3 komut var.
- Get-PSReleaseSummary
- Get-PSReleaseAsset
- Save-PSRelease
Tüm işlevler, Invoke-RestMethod veya Invoke-WebRequest ile birlikte GitHub ile programlı olarak etkileşimde bulunmanıza olanak tanıyan GitHub API'sinden yararlanır.
İlk komut PowerShell deposu yayın sayfasını sorgular ve bir metin özeti oluşturur.
Yeni bir şey indirmeniz gerekip gerekmediğini hızlı bir şekilde kontrol edebilmeniz için sürüm adını ve tarihini en üste koydum. GitHub'da her yayın dosyasına bir varlık adı verilir. Get-PSReleaseAsset komutu GitHub'u her dosya hakkında sorgulayacak ve işlem hattına özel bir nesne yazacaktır.
Varsayılan olarak tüm platformlar için varlıkları görüntüler, ancak kendinizi MacOS gibi tek bir girişle sınırlamak istiyorsanız -Family parametresini ekledim.
Son komutun işi olan bu dosyaları elbette indirmek isteyeceksiniz. Varsayılan olarak komut, farklı bir yol belirtmediğiniz sürece tüm dosyaları geçerli dizine kaydeder. Doğrulama seti kullanan -Name parametresi aracılığıyla seçimi belirli bir platformla sınırlandırabilirsiniz.
Birden fazla ad seçebilirsiniz. Yalnızca Windows adlarını seçerseniz, ZIP veya MSI'yı seçebileceğiniz Format adında dinamik bir parametre vardır. Ve komut -WhatIf'i destekliyor.
Ayrıca indirmeden önce ayrıntıları incelemek için Get-PSReleaseAsset'i çalıştırabileceğinizi de fark ettim. Bu nesnelere sahip olduğunuza göre neden bunları save komutuna aktaramıyorsunuz? Komut, şu şekilde yönlendirme yapabilmeniz için özellik adına göre ardışık düzen girişini kabul eden Dosya Adı, Boyut ve URL parametrelerine sahiptir:
Bu arada dosyanın tamamen indirilip indirilmediğini test etmek için dosya boyutunu kullanıyorum. Sürüm sayfasında karmalar olduğunu biliyorum ama bunları ayrıştırmaya çalışmak istemedim ve bunları başka hiçbir yerde bulamıyorum. Size'ı kullanmak gayet iyi çalışıyor gibi görünüyor.
Artık PowerShell v6'nın en son sürümleri hakkında bilgi sahibi olmak için ihtiyacım olan her şeye sahibim. Ayrıca bunun v6 alfa bitlerini çalıştıran Windows olmayan sistemlerde de çalıştığına dair raporlarım var. Modülü GitHub'da https://github.com/jdhitsolutions/PSReleaseTools adresinde bulabilirsiniz. Her yerde deneyin ve nasıl gittiğini bana bildirin. Lütfen GitHub'da Sorun izlemeyi kullanın.
Güncelleme: Bu çok uzun sürmedi. Modül artık PowerShell Galerisinde olduğundan onu oradan yükleyebilirsiniz.
Install-Module PSReleasetoolsÖnemli bir değişiklik yaptım ve bu, tutarlılık adına kaydetme işlevini Get-PSReleaseAsset ile aynı adı kullanacak şekilde yeniden adlandırmaktı. Bunu daha erken yapmalıydım. Bu özellikle bir komuttan diğerine geçiş yaparken önerilir. Kaydet komutu üzerinde çalışırken bir yoldan başladım, sonra başka bir yolu ekleyebileceğimi fark ettim, bu yüzden komut biraz değişti ve onu yeniden adlandırma zahmetine girmedim. Artık iyi olmalıyız. Sizin için nasıl çalıştığını bana bildirin.