Profile – część piąta.

Poprzednie części:

Część 4: PowerShell ISE

Część 3: PowerShell.exe

Część 2: Co dodać do profili

Część 1: Co to jest profil, rodzaje profili

W części piątej cyklu o profilach skupię się na innych programach, które wspierają obsługę profili. Aby wsparcie rzeczywiście było możliwe (poza wspieraniem rzeczy od hosta w zasadzie niezależnych, jak ładowanie modułów, definiowanie funkcji, aliasów, zmiennych…) niezbędny jest dostęp do samej aplikacji z poziomu konsoli. Obecnie wiem o dwóch narzędziach (poza PowerShell ISE, o którym pisałem ostatnio), które taki dostęp dają: PowerGUI i PowerShell Plus.

PowerGUI i $pgse

Model obiektowy w PowerGUI jest dość silnie rozbudowany, w zasadzie obecnie nie odbiega zbytnio od tego, który istniał od jakiegoś czasu w ISE (jak wiadomo, ISE od momentu wypuszczenia PowerShella 2.0 nie uległo żadnym zmianom, cykl życia poszczególnych wersji PowerGUI jest zdecydowanie krótszy, był więc czas by „nadgonić”). To stało się podstawą do stworzenia modułu, który umożliwia tworzenie dodatków do obu edytorów (ISE i PowerGUI): SparkPlug. Jego autor, James Brundage, był też autorem jednego z pierwszych dodatków do PowerShell ISE (ISEPack), którego zresztą SparkPlug jest kontynuacją (wiele funcji pokrywa się z tymi, które były w ISEPacku).

Jest jednak rzecz, która konsolę PowerGUI odróżnia. Kolorki… 🙂 Konsola w PowerGUI umożliwia praktycznie dowolne konfigurowanie kolorystyki w oparciu o pełną gamę z przestrzeni nazw System.Drawing. Nic więc nie stoi na przeszkodzie by wyświetlić “tęczę”:

$Colors = $PGSE.Configuration.Colors.Console            
$Colors.ForegroundColor = 'Black'            
foreach ($color in [Enum]::GetNames([System.Drawing.KnownColor])) {            
        $Colors.ForegroundColor = $color            
        Write-Host $color            
}            

Naturalnie, każdy z tych kolorów może być wykorzystany do tła/ tekstu w przypadku wystąpienia informacji error/ warning/ verbose/ debug, jak i „normalnych” informacji wyświetlanych w oknie konsoli wbudowanej w edytor skryptów. Profilem możemy się więc posłużyć zarówno do utworzenia „skrótu” do kolorków, jak i ustawienia kolorów w sposób nam odpowiadający. Przy okazji: pętla ta przydaje się do wygenerowania ściągi przed rozmową z ładniejszą połową świata na temat kolorów… 😉

Obiekt $pgse istnieje domyślnie w wersji PowerGUI 3.0, można go utworzyć w PowerGUI 2.4. Dla bezpieczeństwa (jeśli chcemy mieć pewność, że taki obiekt istnieje) możemy na samym początku profilu dodać:

try {            
 if (!$PGSE) {            
  $PGSE = [Quest.PowerGUI.SDK.ScriptEditorFactory]::CurrentInstance            
 }            
 # Some operations with $PGSE, such as colours setup.            
} catch {            
 Write-Warning '$PGSE could not be created.'            
}

Wszystkie te zmiany najlepiej wprowadzić do profilu związanego z PowerShell.exe, który jest traktowany przez PowerGUI jak $profile.CurrentUserCurrentHost, choć host „nieco” się różni.

PowerShell Plus i $psplus

W wersji 4 PowerShellPlus pojawił się obiekt $psplus, który w następnych wersjach tego produktu ma urosnąć. W chwili obecnej jest dość skromny i nie daje zbyt dużej elastyczności:

<#PS [7] #> $psplus | Format-Custom            
            

class HostController
{
  AutoAdjustSize = True
  AutoTriggerEnabled = True
  CursorSize = 100
  FontFace = Consolas
  FontSize = 16
  LastPipeResult =
  MiniMode = False
  Opacity = 1
  PSCredential =
  PSVersion =
  (…)
  PublicName = psplus
  QuickEditMod
}

W zasadzie przydatne opcje to czcionka (typ i wielkość), opcja MiniMode, przezroczystość, Quick Edit Mode. Nic naturalnie nie stoi na przeszkodzie, by z opcji tych skorzystać i jeśli używamy PowerShell Plus często – na pewno docenimy fakt, że przenosząc profil na inną maszynę, będziemy mogli dostosować te parametry do naszych potrzeb. Trudno jednak porównywać tę funkcjonalność z tym, co oferuje w tym zakresie PowerGUI i PowerShell ISE.

~ - autor: Bartek Bielawski w dniu 21 czerwca, 2011.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s

 
%d blogerów lubi to: