2017-07-11 4 views
1

現在、Javaファイルの// TODOコメントに基づいてjiraで問題を作成するスクリプトを作成しています。そのために、私はJIRA REST APIを使用しています。特定の変数の値をbashの文字の間に追加します

は、ここでは私がいないと私は意図的にJIRAのREST APIの一部をコメントし

Issue Name = TODO remove hack for my task 
Description = /opt/test/testfile.java 
key=project-181 

ファイルから一つだけ問題を作成し、私のテストスクリプト、スクリプトのがある

#!/bin/bash 
file=jira.txt 


while IFS='' read -r line || [[ -n "$line" ]]; do 
filename=$(tr -d '\n\r' <<< $(cut -d':' -f1 <<< $line)) 
summary=$(tr -d '\n\r' <<< $(cut -c4- <<< $(cut -d':' -f3 <<< $line))) 

echo -e "\033[1mIssue Name\033[0m = $summary" 
echo -e "\033[1mDescription\033[0m = $filename" 
key="Project-181" 
#key=$(curl -u username:password -X POST --data '{ 
# "fields": { 
#  "project": 
#  { 
#   "key": "project" 
#  }, 
#  "summary": "'"$summary"'", 
#  "description": "'"$filename"'", 
#  "issuetype": { 
#   "name": "Task" 
#  } 
# } 
#}' -H "Content-Type: application/json" http://JIRA-URL/rest/api/2/issue/ | jq '.key') 
echo "key=$key" 
sed -i "/${summary}/s/$/ ${key}/" $filename 
    done < "$file" 

OUTPUT、ですテストスクリプトを実行するたびに新しい問題を生成したい

コメント付きJIRA REST APIの出力は、abと宣言された変数と同じです次のようにjira.txtの 「キー=」プロジェクト-181

コンテンツがあるOVE、私はこのスクリプトを実行した場合

/opt/test/testfile.java:211:   // TODO remove hack for my task 

は、今では正常に実行されますが、私はにチェックインするとき"testfile.java" 私はこれを見、

// TODO remove hack for my task "Project-181" 

私が起こるためにそのような何かをしたい、

// TODO project-181 Remove hack for my task 

ご意見は歓迎いたします ありがとうございます。

答えて

0

は、あなたが「TODO」の後$keyを挿入したい場合は、summary="TODO remove hack for my task"、 を考えるとこれにsed行を変更 :

sed -i "/${summary}/s/TODO \(.*\)/TODO ${key} \1/" $filename 

あなたの元sedコマンド"/${summary}/s/$/ ${key}/"は、スペースとライン$の終わりを置き換えます$keyが続き、「TODO」の後に挿入するのではなく、最後に$keyを効果的に付加します。

+0

これは魔法のように機能しました。どうもありがとう –

関連する問題