Bazen bir Git Hook'u içinde birden fazla aksiyon tetiklemek istediğimiz durumlar olabilir. Tek bir script dosyası açıp içine herşeyi koyabiliriz tabiki ama bunun dezavantajlarından bahsetmeye gerek yok sanırım. Single-Responsibility prensibi ile işleri ayırdığımızı farz ederek devam ediyorum.
Bunu temiz bir şekilde yapmamın çok kolay bir yolu var.
Aşağıda post-receive
hook tetiklendiğinde mail atıp aynı zamanda release işlemlerini başlatan iki farklı bash scripti çalıştırılıyor.
$GIT_DIR/hooks/post-receive
dosyasını açıp aşağıdakine benzer şekilde gerekli düzenlemeleri yapmak yeterli.
#!/bin/sh
FILE=`mktemp`
cat - > $FILE
cat $FILE | /data/hooks/post-receive-release
cat $FILE | /data/hooks/post-receive-email
rm $FILE
/data/hooks/post-receive-release
ve /data/hooks/post-receive-email
iki farklı birbirinden bağımsız script dosyalarıdır.
Çalıştırdığımız dosyalarını istediğiniz gibi güncelleyebilirsiniz ve istediğiniz kadar farklı script eklemek de mümkün.
Dosyalara execute hakkı vermeyi unutmayın.
chmod +x /data/hooks/post-receive-release
chmod +x /data/hooks/post-receive-email
Execute hakkı vermezseniz git bu scriptleri çalıştıramayacaktır.