Skip to content

Instantly share code, notes, and snippets.

@ecylmz
Created April 16, 2011 19:10
Show Gist options
  • Save ecylmz/923395 to your computer and use it in GitHub Desktop.
Save ecylmz/923395 to your computer and use it in GitHub Desktop.
<?php
// hata raporlamayi kapa.
error_reporting(0);
try {
// json verisini decode et.
$payload = json_decode($_REQUEST['payload']);
}
catch(Exception $e) {
exit;
}
// http://help.github.com/post-receive-hooks/ bu adresteki format incelenip, asagidaki degisken tanimlanmistir.
$message = $payload -> commits[0] -> message;
$search = "[tetikle]";
// komit mesajinda [tetikle] kismi varsa betigi calistir.
if (strstr($message, $search)) {
// komut çalıştırılır.
$command = './betik.sh';
exec($command);
}
?>
@roktas
Copy link

roktas commented Apr 16, 2011

çok sık kodlama stili değiştiriyorsunuz (veya hep bunu mu kullanıyordunuz bilmiyorum) C benzeri diller için genel olarak BSD KNF stilini takip edin. yani:

php için ufak bir değişiklik:

    if () {
    }
    else {
    }

kullanın (yani else ayrı bir satırda). benzer durum try/catch için de geçerli...

19/x dokümanlarında bu stil konuları için man dosyaları eklemeye vakit bulamadım ama kafanıza göre bir stilde yazmadan önce bir şekilde benimle temasa geçin ;-)

@roktas
Copy link

roktas commented Apr 16, 2011

@gdemir @emineker de okusun bunları...

@ecylmz
Copy link
Author

ecylmz commented Apr 16, 2011

tamamdır hocam.

@emineker
Copy link

@roktas C föylerini görmeyin :)

@roktas
Copy link

roktas commented Apr 17, 2011

o zaman o föyü de değiştirecek, gerekirse yeniden yazacağız... ayrıca föy nerede? basitçe markdown ile yazılmış halde bir github deposunda bulmalıyız bunu. nurettin hocanıza bu konuda bir ping atalım @seyyah

bakın bazı şeyler standardize edilmeyince başta nasıl başlamışsa öyle gidiyor. üstelik etkisi öyle 3-5 kişi ile sınırlı olmuyor, her dönem ~50 kişi bu virüsü kapıyor. :-)

@ecylmz yazdığın koda geri dönelim. bu kodda temel sıkıntı sudo kullanılması. bunu asla ama asla yapma :-) şimdi bak bu php kodu sunucuda www-data kullanıcısı/grubu olarak çalışıyor. yapman gereken betiğin bu izinlerle çalışmasını sağlamak. örneğin betik.sh'ın çalışacağı dizinini şöyle ayarlayabilirsin:

    chgrp -R www-data <dizin>
    chmod g+w www-data <dizin>

@ecylmz
Copy link
Author

ecylmz commented Apr 17, 2011

@roktas hocam dediğiniz değişiklikleri yaptım. Aslında dediklerinizi baştan beri yapmıştım da nereden aklıma geldisye bu sudo bunu da kullandım.düşünmeden yaptığım bi değişiklikti bu :/

@emineker
Copy link

hocam bu python föyleri yeniden yazılsın sadece kodlar değil eğer bu değişiklikler esnasından markdown'a taşımassak yine uzayacak iş yine uzayacak arkasından C

@roktas
Copy link

roktas commented Apr 17, 2011

bu konuyu listeye taşıyorum

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment