Polski frontend

Piotr Kowalski — JavaScript, Front-end oraz Node.js

Jak dodać nowe polecenie w shellu? Rozszerzamy możliwości Gita

Jak dodać nowe polecenie dla Gita? Z tego artykułu dowiesz się, jak możesz rozszerzać możliwości swojego środowiska operującego na repozytoriach Git.

Kroki

Wykonując podane niżej kroki, dodacie nowe polecenie, którego będziecie mogli używać w każdym repozytorium, i nie tylko! Polecanie Gita możemy używać przecież w katalogach, które nie przechowują repozytorium.

1. Stworzyć katalog dla swoich skryptów mkdir ~/projects/git-scripts

Nazwa git-scripts jest popularną nazwą, zawierają pliki wykonywalne, które to związane są ze światem repozytorium Git.

2. Dodać nową ścieżkę do zmiennej środowiskowej $PATH

Każdy shell bazuje na zmiennych środowiskowych. To one zawierają kluczowe informacje dla działania shella.

Wystarczy, że uruchomicie w terminalu polecenie env, a zobaczycie obecną listę zmiennych środowiskowych używanych w obecnym procesie uruchomionego shella.

Zmienne środowiskowe dostępne są w skryptach uruchomionych w shellu.

Jak rozszerzyć zmienną PATH?

Dla Basha

Otwórzcie plik ~/.bash_profile dopisując:

export PATH="$HOME/projects/git-scripts/:$PATH"

Dla Fisha

Otwórzcie plik ~/.config/fish/config.sh dopisując:

set -gx PATH $HOME/projects/git-scripts/ $PATH

Aby zmiana została “zaaplikowana” należy uruchomić nowego shella. Najszybciej to można wykonać, uruchamiając nową zakładkę w terminalu.

3. Stworzyć plik git-user w katalogu git-scripts

Plik możemy utworzyć za pomocą polecenia:

~/projects/git-scripts > touch git-user

Nie podajemy rozszerzenia. Nazwa pliku będzie poleceniem.

4. Dodać uprawnienia do uruchamiania

To najważniejszy punkt, ponieważ bardzo często o nim się zapomina. Dzięki temu, że plik będzie miał uprawnienia do uruchomienia, będzie mógł być uruchamiany w terminalu jak każde inne polecenie.

Jak nadać uprawnienia do uruchomienia?

~/projects/git-scripts > chmod +x git-user

Aby sprawdzić, czy uprawnienia zostały zaktualizowane, wystarczy wylistować zawartość katalogu:

~/projects/git-scripts > ls -l -rwxr-xr-x 1 pkowalski staff 102B Jan 22 2021 git-user

Trzy x oznaczają, że każdy będzie miał możliwość uruchomić ten plik.

Więcej na temat uprawnień do pliku https://pl.wikipedia.org/wiki/Chmod

5. Uzupełnić zawartość pliku

Kopiujemy poniższy listing i wklejamy do pliku ~/projects/git-scripts/git-user:

#!/usr/bin/env bash name=`git config user.name` email=`git config user.email` echo "$name <$email>" 6. Uruchomić polecenie git user

A teraz najprzyjemniejsza i zarazem ostatnia część — uruchomienie!

Plik możemy uruchomić na kilka sposobów!

…ze ścieżką do pliku:

~/projects/git-scripts > ./git-user

…po nazwie pliku, będąc w dowolnym miejscu:

~/tmp > git-user

…jako polecenie Git:

~/ > git user

Pojawia się pytania, jak to się stało, że nasze uruchomione polecenie posiada spację i działa? Przecież nazwa pliku takiej spacji nie posiadała!

Git potraktuje polecenie jako “swoje”, tj. będzie można je uruchamiać ze spacją, czyli będzie “pod poleceniem” (eng. subcommand) — wystarczy, że nazwa pliku będzie rozpoczynała się od prefixu git-.

Każde z powyższych poleceń powinno wyświetlić w terminalu:

Piotr Kowalski <[email protected]>

(btw. nie jest to mój prawdziwy mail)

Moje git-scripts

Na zakończenie zachęcam Was do sprawdzenia mojego repozytorium ze skryptami pomagającymi mi w pracy z repozytoriami Git:

https://github.com/piecioshka/git-scripts

Najfajniejsze moim zdaniem jest polecenie git-bars, które to wyświetla statystyki dla danego użytkownika w konkretnym repozytorium jako bar chart!

A tak się prezentują statystyki dla mojego użytkownika w repozytorium tego bloga:

~/projects/blog > git bars "Piotr Kowalski" 2021 30 commits 2021-04 8 ■■■■■■■■ 2021-05 5 ■■■■■ 2021-07 5 ■■■■■ 2021-08 6 ■■■■■■ 2021-10 3 ■■■ 2021-11 2 ■■ 2021-12 1 ■

Zachęcam Was do tworzenia własnych projektów typu git-scripts i wrzucania do komentarzy pod tym artykułem!