Onunla Tanışın: Modd , Bir Go Kütüphanesi
Modd nedir ?
Modd, belirtilen dosyalarda meydana gelen bir değişiklikte belirli işleri,komutları tetikleyen bir geliştirme aracıdır.
Bir directoryde bulunan dosyalardan herhangi birisinin değiştiğinde bir yerlere log yazmamız gerektiğini düşünelim. Bunu 2 şekilde yapabiliriz; manuel olarak her değişiklikte gidip elle not düşmemiz (c’moon dostum neden yazılımcıyız peki o zaman ha?) , diğeri ve aklında yolu olan method ise bu işi otomatize etmemiz. İşte Modd bize bu konuda yardımcı olabilir.
Hemen Örneklere geçelim
Kendi github reposunda da yazdığı şekliyle go get ile yüklediğimizi varsayıyorum. Peki nasıl kullanacağız bu arkadaşı ?
Öncelikle masaüstünde modd_test isminde bir directory oluşturup öyle başlayalım… Hatta gereken komutları aşağıya yazayım;
cd
cd Desktop/
mkdir modd_test && cd modd_test & touch "modd.conf" && touch "test.txt"
Evet, yukarıda görüldüğü gibi yeni bir directory ve içinde test.txt ile modd.conf dosyalarını oluşturduk. Burada bizim için mühim olan tabii ki modd.conf
modd.conf’un içini yazalım
Uzun açıklamalarla efkarı bulandırmadan hemen kendi sintaksıyla modd.conf dosyasını yazalım ;
test.txt {
prep : touch "logs.txt" && echo "prep is executed" >> logs.txt
prep +onchange : echo "test.txt file is edited" >> logs.txt
}
Bunları modd.conf‘un içine yazdıktan sonra modd’un bulunduğu directory’de terminale
modd
yazarak modd’u çalıştırıyoruz.
Şimdi bu çalıştırma neticesinde biz neler yapmış olduk? Basitçe hemen açıklayalım ,
-
prep modd’un can damarı, asıl olayıdır denilebilir. +onchange ile yazıldıysa belirtilen scope’ta değişiklik olduğunda, yalın halde yazıldıysa hem ilk çalıştırmada hem de her değişiklik olduğunda karşısında belirtilen komutları çalıştırır.
-
Bu açıdan bakıldığında bizim neler yaptığımızı anlamak gayet kolaydır. modd‘a diyoruz ki, ‘seni ilk çalıştırdığımda logs.txt dosyasını oluştur ve içine “prep is executed yaz. test.txt dosyasında meydana gelen herhangi bir değişiklik durumunda ise yine logs.txt dosyasına “test.txt file is edited” yaz.’
-
Burada dikkat edilmesi gereken bir nokta : test.txt değiştiğinde onchange ile yazılmış prep tekrar çalışacağı gibi ilk satırdaki prep de çalışacaktır! Yani değişiklik durumunda sadece +onchange eklenmiş prep komutlarının çalışacağı gibi bir yanılgıya düşülmemeli, zira tüm prep’ler belirtilen scopeta meydana gelen her değişklikte tetiklenmektedir.
Kaynaklar
https://github.com/cortesi/modd
Leave a comment