Skip to content

Instantly share code, notes, and snippets.

@ecylmz
Created April 16, 2011 19:10
Show Gist options
  • Select an option

  • Save ecylmz/923395 to your computer and use it in GitHub Desktop.

Select an option

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
Copy Markdown

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
Copy Markdown

roktas commented Apr 16, 2011

@gdemir @emineker de okusun bunları...

@ecylmz
Copy link
Copy Markdown
Author

ecylmz commented Apr 16, 2011

tamamdır hocam.

@emineker
Copy link
Copy Markdown

@roktas C föylerini görmeyin :)

@roktas
Copy link
Copy Markdown

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
Copy Markdown
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
Copy Markdown

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
Copy Markdown

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