SVN hooks i autoupdate’y

Czsami problemy są nieco ukryte, jednak jak zawsze debug daje radę. Hooks w svn’ie to rzecz bardzo przydatna, jeszcze bardziej jak chcemy po każdym commit’owaniu otrzymać działającą kopię na stronie testowej, klasyczne wykorzystanie cron’a jest często uciążliwe, a hook post-commit wykonywany jest jak sama nazwa wskazuje po commit’owaniu, autoupdate można zrobic tak: {REPO}/hooks/post-commit (skrypt z bitem wykonywalności) #!/bin/sh /usr/local/bin/update Sam skrypt update w moim przypadku to C: #include #include #include int main(void) { execl("/path/to/svn", "svn", "update", "--username", "USERNAME", "--password", "PASSWORD", "--no-auth-cache", "/path/to/svnsite/", (const char *) NULL); return(EXIT_FAILURE); } ` ``` gcc update.c -o update cp update /usr/local/bin chmod +s /usr/local/bin/update W całym kodzie ważny jest –no-auth-cache, ponieważ bez tego system będzie prosić o dopowiedź w jaki sposób przchowywać hasła w pliku cache, jakoże wykonywane jest to przez użytkownika apache (w moim przypadku), który nie posiada własnego shella i home (oczywiste), pytanie takie jest powodem nie działania skryptu. ...

czerwca 3, 2009 · paramah

Dynamic Asterisk na PostgreSQL (cz.1)

Ostatnio a dokładniej w piątek postawiono mi zadanie stworzenie zupełnie dynamicznego rozwiązania dla platformy Asterisk (osobiście polecam ostatnią stabilną wersję o numerku 1.4.23.1). Stworzenie konfiguracji dla składownia CDR’ów w psql nie jest problemem, jednak kiedy chcemy mieć klientów sip, iax “tworzyć” zupełnie dynamicznie bez potrzeby restartowania serwera lub modułów jest to deko problem. Łącząc Asteriska z bazą danym mamy aktualnie parę możliwych sterowników baz danych: ODBCM mysql pgsql Chcąc mieć bazę jak najbardziej jak to nazywam “strict” oraz mieć ją zupełnie za darmo stwierdziłem, że idealny będzie pgsql. Wstępna konfiguracja danych potrzebnych do połączenia z bazą danych znajdują się w /etc/asterisk/res_pgsql.conf: ...

marca 7, 2009 · paramah

Jak wylistować sobie miasta u pewnego dużego dostawcy usług internetowych ?

Oczywiście prezentowany sktypt jest banalny, jednak można go sobie ładnie rozbudować, niestety strony znanych mi providerów takich jak UPC i innych podobnoych są bardzo słabo zabezpieczone pod wieloma względami i oto mała prezentacja co można zrobić ze stronami “user frendly”, których jest coraz więcej. #!/usr/local/bin/ruby require 'rubygems' require 'curl-multi' require 'json' curl = Curl::Multi.new towns = Array.new letters = ('a'..'z') on_success_town = lambda do |body| puts JSON.parse(body) end on_failure = lambda do |ex| puts 'Failure.' puts ex end letters.each do |letter| curl.get('http://strefaklienta.upc.pl/cckservices/rfs/city?q='+letter+'&limit=999', on_success_town, on_failure) curl.select([],[]) while curl.size > 0; end W wyniku otrzymamy listę miast w zasięku sieci UPC, oczywiście można pójść kawałek dalej i otrzymać listę ulic, a nawet numery bloków dołożyć do tego googlemaps i w parę minut mamy bardzo dokładną mapkę zasięgu sieci UPC, dane na pozór mało istotne, ale jak się tak głębiej zastanowić to mogą się okazać przydatne. ...

stycznia 2, 2009 · paramah