Aby PowerShell był bardziej power – dodatki i moduły do PowerShell

A

Potrzeba i chęć używania git’a sprawiła, że siłą rzeczy używam również PowerShella i to właśnie o nim będzie dzisiejszy wpis. Okazuje się, dla osoby niezbyt obytej z tym narzędziem, że jest ono bardzo przydatne, zwłaszcza dla programisty. Dzisiaj nie chcę pisać o konkretnych funkcjach czy komendach. Napiszę o kilku dodatkach jakich używam i jak wspomagają/usprawniają one pracę. Mam również w planach post traktujący o PowerShellowych tips & tricks dla programistów, ale to kiedy indziej.

 

Łatwiej w Gita

Skoro o Gicie była mowa, zacznę od Gita właśnie. Świetnym dodatkiem do PowerShella, modułem dokładnie, jest Posh-Git. Moduł ten po pierwsze pokazuje status naszego rpozytorium jako prompt, co jest całkiem spoko. Dodatkowo, mamy możliwość auto-dopełniania (eh…ten nasz język) komend Gita za pomocą klawisza Tab.

Piszesz:

git ch

wciskasz klawisz Tab i dostajesz:

git checkout

W zamian za:

git pull or<Tab> ma<Tab>

dostaniesz:

git pull origin master

 

Tak jak pisałem. Całkiem fajny pomagier.

Aby zainstalować ten moduł trzeba spełnić kilka warunków i na początku należy sprawdzić i ustawić kilka elementów…

 

Potem instalujemy moduł…

 

Tak wygląda prompt w katalogu w którym trzymam repo dla mojego pet-project…

 

Nie samym kodem człowiek żyje

Rzecz dla niektórych nieistotna, dla innych ważna. Mianowicie, wygląd samej powłoki. Ktoś mógłby powiedzieć, że to przecież nie ma znaczenia, ale dla mnie odpowiednia czcionka ułatwiająca czytanie, odpowiednia jej wielkość (przez co zmieści się w oknie więcej), kolorowanie tekstu które ułatwia szybkie znajdowanie czegoś w tekście to są moim zdaniem zalety zmiany wyglądu powłoki, które zwracają się z nawiązką w postaci zaoszczędzonego czasu.

Dlatego przedstawiam narzędzie do realizacji tego celu – concfg. Pozwala importować i eksportować ustawienia konsoli odnośnie czcionek i wyglądu okna. Twórca stworzył nawet dodatkowy tool do modyfikowania styli – http://github.mindzgroup.com/concfg/

Żeby móc skorzystać z concfg wystarczy posiadać zainstalowany Scoop:

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

i wydać polecenie:

scoop install concfg

Aby zaimportować któryś z dostępnych styli wystarczy wpisać:

concfg import <nazwa_stylu>

Jak widać, concfg w połączeniu z Posh-Git, daje nowe rezultaty…

 

Skoczek bije królową

Często „biegasz” między katalogami? Zmieniasz ścieżki jak szalony? Jump-Location to skrypt PowerShellowy (cmdlet) dla Ciebie!

Takie sprytne to ustrojstwo, że „uczy” się jak często i jak długo spędzasz czas w jakiejś ścieżce, a potem podając jedynie komendę „j” i jakiś wyuczony przez Jump-Location, 2-3 literowy alias, zostajesz przeniesiony do żądanej lokacji.

Ło Panie! Magia ;-).

Aby zdobyć ten skrypt, wystarczy wydać komendę:

Install-Module Jump.Location

 


Wystarczyło, że wejdę do katalogów Documents, Downloads, OneDrive za pomocą standardowej komendy „cd”, a potem tylko wypróbowałem odpowiednio:

j doc<Tab><Enter>
j dow<Tab><Enter>
j one<Tab><Enter>

 

Budujemy, budujemy

Invoke-MsBuild to moduł czyniący kożystanie z MsBuilda w skryptach PowerShell jest duuuuużo łatwiejsze.

Podaję przykład.

Tak wygląda klasyczny sposób budowy solucji za pomocą MsBuilda:

$msbuild = "C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"
$proj = "C:\Users\pkubiela\Documents\Development\Blog\VSPerformanceProfilerTest\Test.sln /target:Clean /target:Build"
Invoke-Expression "$msbuild64 $proj"

Oczywiście można to machnąć jedno-linijkowcem bez deklarowania parametrów. Nadal będzie brzydkie i niewygodne.

Tak, natomiast wygląda budowanie solucji przy pomocy modułu Invoke-MsBuild:

Import-Module Invoke-MsBuild
Invoke-MsBuild "C:\Users\pkubiela\Documents\Development\Blog\VSPerformanceProfilerTest\Test.sln"

Oczywiście zadziała też w ten sposób:

Import-Module "<Path>\Invoke-MsBuild.psm1"
$proj = "C:\Users\pkubiela\Documents\Development\Blog\VSPerformanceProfilerTest\Test.sln /target:Clean /target:Build"
Invoke-MsBuild "$proj"

 

Aby zainstalować ten moduł, wystarczy zainstalować go z PowerShell Gallery:

Install-Module -Name Invoke-MsBuild

 

Czytelność kodu jest ważna

PowerShell-Beautifier to kolejne narzędzie „upiększające”, które umożliwia formatowanie kodu skryptów powershellowych po zapisie pliku, pilnuje białe znaki, wcięcia, zmienia kod na notację PascalCase kiedy trzeba, nawiasy itp. To oczywiście, nie jest zabiegiem tylko estetycznym. W dużej mierze pozwala łatwiej i szybciej czytać, odnajdywać w kodzie interesujące nas elementy.

Aby zainstalować to narzędzie należy je zwyczajnie pobrać ze strony producenta lub zainstalować z poziomu okna PowerShella (z PowerShell Gallery), co preferuję.
W celu instalacji, wykonujemy:

Install-Module -Name PowerShell-Beautifier

Potem importujemy moduł:

Import-Module PowerShell-Beautifier

 

Co ciekawe, autor przed użyciem radzi:

„Before using this utility on any file, back up your file!”

Hłe. Hłe. Hłe.

Użycie? A no, wyglda tak:

Edit-DTWBeautifyScript C:\Users\pkubiela\Documents\Development\PowerShell\PowerShellProject\PowerShellProject/PowerShellProject.ps1

Przed użyciem, skrypt wyglądał tak:

 

Natomiast po użyciu, widać lekkie wcięcia pomiędzy „wąsami”:

Zalet i możliwości jest więcej. Odsyłam do strony projektu – PowerShell Gallery

 

Bardziej Dev niż Ops

Jeśli zamierzasz lub piszesz skrypty PowerShellowe w Visual Studio, dobrym krokiem na przód będzie zainstalowanie wtyczki PowerShell Tools For Visual Studio 2017. Pan Adam Discroll, autor tej wtyczki, PowerShell MVP, daje nam możliwość tworzenia i odpalania i debuggowania skryptów PowerShell lokalnie w VisualStudio. Możemy tworzyć moduły i całe projekty PowerShellowe.

Dodatkowo PowerShell Tools For Visual Studio 2017 integruje się z adapterem do testów jenostkowych. Aby z tej funkcji skorzystać wystarczy nazywać odpowiednio pliki PowerShellowe – <Nazwa>.Tests.ps1

 

 

 

 

Niektóre z tych narzędzi znalazłem pisząc ten post. Nie sposób było się nimi nie podzielić. Z niektórych korzystam na codzień przy pracy, lub po prostu eksperymentując z kodem czy np. z dockerem. PowerShell to narzędzie lekkie, przyjemne, a użytkownik który umie w PowerShella wiele może.

Napiszcie co sądzicie. Przede wszystkim dajcie znać, jeśli macie coś godnego polecenia (moduł, skrypt, trik), chętnie to sprawdzę, opiszę.

Zapiszcie się do newslettera. Bądźcie na bieżąco z moimi blogowymi poczynaniami.

Cześć!

 



 

About the author

2 komentarze

    • Bawię się nim ostatnio. Głównie przy pet-projects. Ostatnio pozytywnie zaskoczyła mnie możliwość otwarcia kilku terminali w VS Code. np. PowerShellowy i bash GITa jednoczęśnie. Prosta rzecz, a cieszy.

By Patryk

Autor serwisu

Patryk

Społecznościowe

Instagram

Newsletter



Historycznie

Tagi