動機
- git logの結果でdiffやらarchiveしたいが、git logの結果がプログラムで扱いづらい
- git logコマンドでは件名のダブルクオーテーションがエスケープできないので、--pretty=formatでjson文字列に変換できない
環境
- PSVersion:5.1
- OS:Windows10
ソースコード
#gitlogをPSCustomObject配列で返す
#注意:ロケーションが移動します
function ConvertArrayFromGitLog() {
#.gitのパスに移動する
Set-Location -path "C:\users\project"
#gitlogコマンドで件名の”をエスケープできずjsonに変換できないため、
#タブ区切り(%x09)にしてからMapでPSCustomObject配列作成
return git log --date=iso --pretty=format:'%ad%x09%h%x09%ae%x09%s' | % {
$_ = $_.Split("`t")
return [PSCustomObject]@{
Date = $_[0]
CommitId = $_[1]
AuthorMail = $_[2]
Subject = $_[3]
}
}
}