Powłoki – FISH, czyli nowoczesna powłoka dla dewelopera. Część druga

W tej części cyklu o powłoce Fish postaram się przybliżyć projekt Oh My Fish (dalej ujęty jako OMF lub komenda omf), który został zainspirowany bardzo popularnym wśród użytkowników zsh projektem Oh My Zsh.

W tej części cyklu o powłoce Fish postaram się przybliżyć projekt Oh My Fish (dalej ujęty jako OMF lub komenda omf), który został zainspirowany bardzo popularnym wśród użytkowników zsh projektem Oh My Zsh.

Oh My Fish!

Oh My Fish jest frameworkiem (inaczej rzecz ujmując platformą programistyczną), który w znaczny sposób rozszerza możliwości Fisha. Pozwala on na:

  • zarządzanie pakietami
  • zarządzanie repozytoriami
  • tworzenie własnych motywów, pakietów w oparciu o szablon
  • zawiera narzędzia diagnostyczne.

Oficjalna strona projektu na platformie GitHub: OMF na Githubie.

Przesłonięcie innej komendy

Cały framework Oh My Fish wywołujemy przy pomocy polecenia omf.
W celu sprawdzenia, czy inny program nie koliduje z komendą omf, możemy sprawdzić, czy inny pakiet nie dostarcza takiego pliku. W tym celu wykonujemy komendę:

[user@host]$ sudo yum whatprovides '*/omf'
filesystem-3.2-21.el7.x86_64 : The basic directory layout for a Linux system
Filename : /usr/share/omf

gnome-doc-utils-stylesheets-0.20.10-5.el7.noarch : XSL stylesheets used by gnome-doc-utils
Filename : /usr/share/xml/gnome/xslt/docbook/omf

Zarówno w EuroLinuxie 6 i 7 istnieją pakiety, które dostarczają folder omf. Są to filesystem i gnome-doc-utils-styleesheets. Tworzą one katalog o nazwie omf. Co istotne, nie istnieje żaden plik binarny, który tak się nazywa. Same pliki omf są specjalnymi XML’ami używanymi między innymi przez Yelp, czyli program pomocy Gnome.

Wiedząc zatem, że omf nie powoduje konfliktów w naszym systemie, możemy go używać, nie martwiąc się o przesłonięcie komendy.

Instalacja

By zainstalować Oh My Fish, możemy wykonać prosty skrypt.

curl -L https://get.oh-my.fish | fish

Jeśli jednak wolimy najpierw zobaczyć, jak wygląda nasz skrypt, możemy po prostu go pobrać, sprawdzić i wywołać w niemalże identyczny sposób.

curl -L https://get.oh-my.fish > install.fish
# Sprawdzenie skryptu
cat install.fish | fish

Uwaga:

Do zainstalowania OMF wymagana jest nowsza wersja Gita (wyższa lub równa 1.9.5, niedostępna standardowo w EuroLinuxie 6 i 7 oraz w innych enterprise’owych Linuksach.

Skrypt instalacyjny najnowszego stabilnego Gita możemy znaleźć na naszym blogu.
Git – podstawowe narzędzie pracy dewelopera i nie tylko. Część II: trochę komend i trochę praktyki

Używanie, instalacja nowych motywów, wybór motywu

Puste wywołanie omf poinformuje nas o możliwych podkomendach.

> ~ omf

Na powyższym zrzucie terminala możemy zauważyć dwie ciekawe informacje. Pierwsza – domyślny motyw omf nie renderuje się poprawnie. Wymaga on od nas czcionek powerline’owych. Druga – kolorowanie podkomend. Zauważmy, że uświadomienie o fakcie, iż omf update  jest jednoznaczne z omf u, zostało nam dane w wyjątkowo przyjaznej formie.

omf theme # Listuje motywy
omf theme nazwa_motywu # Wybiera motyw
omf install nazwa_motywu # Instaluje motyw, jeśli nie został zainstalowany

Dokumentacje do domyślnie dostępnych motywów znajdziemy tutaj.

Poniższy zrzut prezentuje instalację motywu, wystąpienie błędu oraz użycie narzędzia omf doktor.

fish_2

Instalacja wtyczki

Wywołując omf install i wciskając dwa razy „tab”, dostaniemy dostępne motywy oraz wtyczki.

fish_3

Zainstalujmy teraz dwie wtyczki. Pierwsza to battery. Instalacja odbywa się poprzez omf install battery.

fish_4

Jak nietrudno się domyślić, wtyczka pokazuje nam stopień naładowania baterii.

Z kolei druga wtyczka wyświetla pogodę.
W tym celu wywołujemy omf install weather lub krócej omf i weather.

fish_5

Do poprawnego działania wtyczka ta potrzebuje pakietu JQ znajdującego się w repozytorium EPEL. Więcej informacji na temat JQ znajdziemy tutaj.

By go zainstalować, wystarczy wywołać sudo yum install -y jq.

Dezinstalacja wtyczki

Dezinstalacja wtyczki odbywa się poprzez komendę omf remove lub krócej omf r.

Zauważmy, że instalacja wtyczki weather doinstalowała nam także pakiety spark i config. Usuwając weather, dwa pozostałe zostaną. Poniższy przykład pokazuje, że omf nie zarządza jednak zależnościami przy usuwaniu.

fish_6

Podsumowanie

Jak widać, omf jest bardzo prostym i równocześnie potężnym narzędziem do zarządzania Fishem.

Niestety ze względu na objętość materiału oraz nasze starania o dostarczenie tekstu wysokiej jakości, porównaniu wydajności poświęcony będzie kolejny artykuł. Zależy nam, by procedura testowa była stosunkowo najlepsza i uniwersalna, tak by w przyszłości można było ją testować także do innych muszelek (shelli :)).

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.