2016-06-20 16 views
1

特定のディレクトリが更新されたときに実行したいスクリプトがあります。具体的には、開発チームは時々更新する4つのディレクトリ(「a」、「b」、「c」、「d」と言うことができます)を持っています。私はディレクトリのパラメータ名として取るスクリプトを持っています。ディレクトリ "a"が更新されたら、パラメータ "a"でこのスクリプトを実行します。それはジェンキンスとできるか?もしそうなら、SVNを使って同じことをすることはできますか?ディレクトリが更新されたときにPythonスクリプトを実行する

+0

pythonとは関係ありません。ジェンキンスはSVNプラグインを持っていなければなりません。 –

答えて

2

これは、watchdogライブラリを使用して、Python自体を使用して行うことができます。

from watchdog.observers import Observer 
from watchdog.events import PatternMatchingEventHandler 

class FileHandler(PatternMatchingEventHandler): 
    def process(self, event): 
     print event.src_path, event.event_type # print now only for degug 

    def on_modified(self, event): 
     self.process(event) 

    def on_created(self, event): 
     self.process(event) 

if __name__ == '__main__': 
    args = sys.argv[1:] 
    observer = Observer() 
    observer.schedule(MyHandler(), path=args[0] if args else '.') 
    observer.start() 

    try: 
     while True: 
      time.sleep(1) 
    except KeyboardInterrupt: 
     observer.stop() 

    observer.join() 
+0

あなたの答えをありがとう、それは本当に役立つかもしれません!しかし、私はそれがジェンキンスを使用するよりも良いかどうかはわかりません。これらのディレクトリはサーバに置かれているので、おそらく私は何をしたくないのでしょうか?私はそれがすべての時間を働かせたいとは思っていませんし、それを実行または停止する簡単なスイッチを持ってほしい – Michael280

+0

Jenkinsは、これがファイルシステムの変更を探してビルドをトリガーできる仕事をするためのプラグインを持っています。しかし、サポートがそこで終わるので、変更されたディレクトリ名をスクリプトに渡すことができるかどうかはわかりません。 https://wiki.jenkins-ci.org/display/JENKINS/FSTrigger+Plugin –

関連する問題