2012-02-08 9 views
3

私は自動的に呼び出すことができるスクリプトを使用して、既存のPERFORCEラベルを修正したいと考えています。これは私のデフォルトのテキストエディタで一時ファイルを開きますPERFORCEラベルの説明をスクリプトで編集する

p4 label <label-name> 

、私はその後、近くにファイルを保存して、説明を入力することができます - 成功したラベルを更新します。現在、私は、テキストエディタのオプションを使用してそれを行う方法を知っています。

ただし、スクリプトを使用して自動的にこれを行うことができます。私は私の記述を形成するために使用できる変数を持つでしょう。

シェルスクリプトまたはbatスクリプト(Windowsの場合はCygwin)を使用できます。

PERFORCEコマンドラインのドキュメントはhereですが、それは私を助けません。

アイデア?あなたはこれらの線に沿って何かをするだろう

答えて

6

p4 label -o > label.txt 
sed -i 's/old/new/g' label.txt # or any other automated method to do the modification 
p4 label -i < label.txt 
0

sedは、単一の行にテキストを置き換えますが、複数行の説明フィールドを扱うときperlの構文は簡単です(簡単に)に使用することができます。

以下のbashコードは、ラベルNAME_OF_CURRENT_LABELのラベル定義をエクスポートし、MY_NEW_LABELの新しいラベル定義を作成し、その記述をMY_NEW_DESCRIPTIONに設定します。 は、は説明テキストが存在し、上の "説明:"行の下の1行にあることを前提としています。説明を更新するには、sed行を削除してください。

p4 label -o NAME_OF_CURRENT_LABEL   |   # Output label spec for NAME_OF_CURRENT_LABEL  \ 
    sed 's/^Label:.*/Label: MY_NEW_LABEL/' |   # Update label name to MY_NEW_LABEL   \ 
    perl -pe "$/='',s/^Description:\n(.*)$/Description:\n\tMY_NEW_DESCRIPTION\n/s" | # Update one-line description to MY_NEW_DESCRIPTION  \ 
    p4 label -i          # Create new label with output from pipe 
関連する問題