7

SVN に保存されているスクリプトを実行する SVN pre-commit フックを実装する必要があります。

次のように、コマンドを使用してsvn catそのスクリプトを Python インタープリターにパイプできます。

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

ただし、my_script.pyそれ自体はデータを STDIN にパイプする必要があります。

そのデータはファイルに保存されません。ネットワーク上に保存されます。通常はPythonプログラムにパイプできるため、データを一時ファイルにダウンロードする必要はありません。

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

これらのパイプの両方を組み合わせる方法がわかりません。

4

2 に答える 2

10

一時ファイルを作成せずにこれを行う方法を見つけましたが、厳密には「パイプ」を使用していません。

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

私は Bash で「匿名ファイル記述子」構造を使用しました。これは、任意のファイル パスの代わりに使用できます。

たとえば 、次python my_script.py のようになります python <(cat my_script.py)

于 2012-09-16T01:48:26.517 に答える
0

これは不可能だと思います。スクリプトを標準入力として Python インタープリターにフィードします。これは、Python インタープリターが既に入力ストリームにアタッチされていることを意味します。スクリプトの内容が、読み取るための 2 番目の標準入力を作成できるとは思いません。

于 2012-09-15T23:50:23.797 に答える