Tek Git Hook'un da Birden Fazla Aksiyon

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.