Sesje z PSConfEU – po polsku!

•1 sierpnia, 2023 • Dodaj komentarz

Ninja-StarW czerwcu, w Pradze, odbyła się kolejna edycja PowerShell Conference Europe. Jak zwykle, wszystkie sesje (z lepszym lub gorszym skutkiem) były nagrywane, a nagrania udostępnione zostały za darmo na platformie YouTube. To co różni nagrania z tego roku od nagrać z lat poprzednich to podpisy, generowane co prawda w pierwszej odsłonie automatycznie, ale które można było “dopieścić” lub też, z czego skrzętnie skorzystałem, zlokalizować.

Czytaj dalej ‚Sesje z PSConfEU – po polsku!’

Otwarty kod naprawdę działa!

•1 lutego, 2023 • Dodaj komentarz

Otwarty kod - PowerShell autor: Hanna BielawskaPowerShell od wersji szóstej ma dwie cechy, których nie posiadał nigdy przedtem: działa na różnych systemach i jest projektem o otwartym kodzie. I o ile ta pierwsza cecha nie sprawiła, by nagle pojawiły się dystrybucje Linuxa z PowerShellem jako podstawową powłoką systemową (jeszcze? Winking smile), o tyle otwarty kod naprawdę działa, o czym przekonałem się ostatnio, gdy zachciało mi się podłubać nieco przy schematach plików JSON.

Czytaj dalej ‚Otwarty kod naprawdę działa!’

PowerShell podpowiada komendy gita

•9 września, 2022 • Dodaj komentarz

PowerShell-Predictors-gitObiecywałem, że spróbuję i spróbowałem. I choć tak jak sądziłem, bez kompilowania się nie obyło, to samo tworzenia prościutkiego modułu, który zacznie podpowiadać polecenia okazało się stosunkowo proste. Na pierwszy rzut – prosty modulik, który podpowiada polecenia gita. Nie poprzestaniemy jednak jedynie na tym – pozwolimy pomocy pomagać nam „bardziej”.

Czytaj dalej ‚PowerShell podpowiada komendy gita’

PowerShell w myślach czyta?

•13 lipca, 2022 • Dodaj komentarz

PowerShell-Czyta-W-MyslachO module PSReadLine pisałem już na tym blogu w przeszłości. Gwoli przypomnienia: to właśnie ten moduł jest odpowiedzialny za skróty klawiszowe, kolorowanie składni, przechowywanie historii (i udostępnienia jej za pomocą skrótu klawiszowego CTRL+R) i wiele, wiele innych. Od ostatniej wersji domyślnie włączona jest też funkcja, która sprawia, że PowerShell zaczyna przewidywać wasze myśli a w jednym przypadku – podsuwać gotowe rozwiązania. Mowa o dostępnej od wersji 2.1 (a od wersji 2.2.6 domyślnie włączonej) opcji “PredictionSource”.

Czytaj dalej ‚PowerShell w myślach czyta?’

Moduł ISEPester – testujemy w PowerShell ISE

•12 lipca, 2022 • Dodaj komentarz

PesterO testach w PowerShellu pisałem już na tym blogu kilka razy. Dziś skupię się nie na samych testach, ich tworzeniu i zastosowaniach, ale na module, który “popełniłem” inspirowany sesją przygotowaną niemal dwa lata temu przez Jakuba Jareša, człowieka w znacznej mierze odpowiedzialnego za moduł Pester. W sesji tej Jakub demonstrował jak w VS Code uruchamiać pojedynczy test, czy blok Context/ Describe. Po ustaleniu, że wtyczka do VS Code korzysta po prostu z odpowiedniego rodzaju filtrów w trakcie uruchamiania testów, nie pozostało mi nic innego, jak tylko przenieść te możliwości do mojego ulubionego edytora, PowerShell ISE.

Czytaj dalej ‚Moduł ISEPester – testujemy w PowerShell ISE’

Komenda poszukiwana

•2 lipca, 2022 • Dodaj komentarz

AbstractSyntaxTreePowerShell od wersji trzeciej oferuje stosunkowo łatwy dostęp do Abstract Syntax Tree (AST – drzewo składniowe, bądź drzewo składni abstrakcyjnej) samego języka. Dzięki temu narzędzia, ale również użytkownicy mogą przeprowadzać analizę składni, odnajdując jej elementy nie za pomocą wyrażeń regularnych (które czasem mogą wprowadzić nas w błąd) a za pomocą analizy zbliżonej do tej, jaką przeprowadzi sam silnik. Umożliwia to odnajdowanie elementów składni wszędzie tam, gdzie one wystąpią, bez ryzyka, że coś pominiemy (lub w naszych wynikach pojawią się wystąpienia nieprawidłowe). Przykład problemu, który AST pozwoli rozwiązać, miałem ostatnio w pracy.

Czytaj dalej ‚Komenda poszukiwana’

Tabulator kontra klasa

•26 Maj, 2022 • Dodaj komentarz

TabKlasyO potędze tabulacji w PowerShellu pisałem na tym blogu kilkakrotnie. Dziś chciałem wspomnieć o możliwości, którą przyjąłem uważać za oczywistą, a która oczywista chyba wcale nie jest – do tego stopnia, że kolega z pracy (nota bene w znacznej mierze równie biegły w PowerShellu co ja) do niedawna o możliwości tej nie wiedział. Będzie też nieco o pracy z klasami/ obiektami nieco ogólniej. Przede wszystkim o tworzeniu obiektów w oparciu o klasy czy to “wbudowane” w .NET, czy to dystrybuowane wraz z modułami w PowerShellu. Wszystko to na przykładzie pracy z AWS, przy którym ostatnio zdarza mi się nieco częściej “dłubać”.

Czytaj dalej ‚Tabulator kontra klasa’

Magia splattingu

•10 kwietnia, 2022 • Dodaj komentarz

ps-plamaJedną z moich ulubionych funkcji w PowerShellu jest splatting (nie podejmuję się tłumoczenia) – możliwość przekazywania parametrów do poleceń za pomocą tablicy skrótów. Przydaje się to w różnych sytuacjach – ja skupię się na kilku z nich. Przede wszystkim – uruchamianie poleceń z licznymi i przydługimi parametrami. Po drugie – współdzielenie parametrów pomiędzy całą grupą poleceń, które parametry te współdzielą. Wreszcie przekazywanie poleceń z “rodzica” do “potomstwa” z wykorzystaniem zmiennej wbudowanej PSBoundParameters.

Czytaj dalej ‚Magia splattingu’

Błędy w REST – zamieść pod dywan

•30 marca, 2022 • Dodaj komentarz

pod-dywanW poprzednim wpisie wspomniałem o tym, jak czasem praca z REST w PowerShellu jest nieco kłopotliwa i wymaga wiedzy o tym, co PowerShell dokładnie robi (lub raczej: czego nie robi, mimo że powinien). Dziś o nieco innym problemie, który na szczęście w nowszych wersjach PowerShella jest już usunięty i o tym, jak podobny efekt uzyskać w Windows PowerShell (z którego, jak sadzę, nadal korzysta większość użytkowników PowerShella).

Czytaj dalej ‚Błędy w REST – zamieść pod dywan’

Gdy praca z REST bokiem wychodzi…

•27 marca, 2022 • Dodaj komentarz

cardboard-box-gf4a092a3e_280Praca w środowisku hybrydowym, z mieszanką serwerów korzystających z Windows z (przeważającą) flotą Linuksów wymaga wspólnego języka. W naszej firmie korzystamy z REST i nie tylko oferujemy końcówki dla innych działów, ale sami też staramy się korzystać z tych końcówek w naszych funkcjach. Wszystko to działa na komercyjnej wersji PowerShell Universal (PSU). I działa całkiem sprawnie – jedna rzecz tylko nie dawała nam spokoju, przesyłaniem parametrów do naszych końcówek w sposób “PowerShellowy”.

Czytaj dalej ‚Gdy praca z REST bokiem wychodzi…’