2012-09-12 7 views
7

SVNに格納されているスクリプトを実行するSVNプリコミットフックを実装する必要があります。次のようにパイプSTDINは、それ自体がPythonインタプリタにパイプ接続されているスクリプトですか?

私は、Pythonインタプリタにそのスクリプトパイプにsvn catコマンドを使用することができます。

svn cat file://$REPO/trunk/my_script.py | python - --argument1 --argument2 

しかし、my_script.py自体はSTDINにパイプさのデータを必要とします。

そのデータはファイルに保存されません。ネットワーク上に格納されます。

curl http://example.com/huge_file.txt | python my_script.py 

私はこれらのパイプの両方を兼ね備えするかどうかはわかりません。私は通常、私はPythonプログラムにパイプ、それは可能性として、一時ファイルにデータをダウンロードする必要がないことを好むだろう。

+0

と同じですか?>を使用しましたか? –

+0

pysvnを使用してファイルを読み込んだ後、コンパイルして実行するラッパースクリプトを作成して、標準入力がフリーであるようにしますか? – agf

答えて

10

私は、一時的なファイルを作成することなくこれを行う方法を理解しましたが、厳密には "パイプ"ではありませんでした。

curl http://example.com/huge_file.txt | python <(svn cat file://$REPO/trunk/my_script.py) --argument1 --argument2

私は任意のファイルパスの代わりに使用することができ、バッシュで構築「匿名のファイルディスクリプタ」を使用。

など。 python my_script.py は、 python <(cat my_script.py)

0

これは可能ではないと思います。 Pythonインタプリタへの標準入力としてスクリプトを送ります。これは、Pythonインタプリタがすでに入力ストリームにアタッチされていることを意味します。私は、スクリプトの内容が読むための第2の標準入力を作成できるとは思わない。

関連する問題