{"body":"\n\n$global:mainBranchName = \"master\" # should be either main or master\n\nclass Commit {\n    [string]$message\n    [string]$time\n    [string]$date\n    [string]$meridiem\n    [string]$tfs_id\n    [string]$commit\n    [string]$orig_date\n}\n\nfunction Get-Revisions {\n    $revisions = @(git rev-list $global:mainBranchName)\n    return $revisions\n}\n\nfunction Get-Commit-Message {\n    param([String]$revision)\n    $message = $(git rev-list --format=%B --max-count=1 $revision) | Out-String\n    # replace newlines\n    $message = $message -replace \"`n\", \" \" -replace \"`r\", \" \"\n    return $message \n}\n\nfunction Get-Data-From-Revision {\n    param([String]$revision)\n    $pattern = \"^(?<commit>commit \\w+)\\s+(?<orig_date>\\{(?:(\\d{1,2}\\/\\d{1,2}\\/\\d{1,4} \\d{1,2}:\\d{1,2}:\\d{1,2} (?:AM|PM)~))?(?<date>\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}) (?<time>\\d{1,2}:\\d{1,2}:\\d{1,2}) (?<meridiem>AM|PM)})(?<message>.*)(?<tfs>git-tfs-id: .*)\"\n    $message = Get-Commit-Message -revision $revision\n    if ($message -match $pattern) {\n        $data = [Commit]::new()\n        $data.commit = $Matches.commit.Trim()\n        $data.date = $Matches.date\n        $data.time = $Matches.time\n        $data.meridiem = $Matches.meridiem\n        $data.message = $Matches.message.Trim()\n        $data.orig_date = $Matches.orig_date\n        $data.tfs_id = $Matches.tfs.Trim()    \n        return $data\n    }\n    else {\n        throw \"Revision $revision didn't produce a match\"\n    }\n}\n\nfunction Find-Fox-Bin-Files {\n    param([String]$directory)\n    $results = Get-ChildItem -Include *.PJX, *.SCX, *.VCX, *.FRX, *.LBX, *.DBC, *.DBF -Recurse $directory\n    return $results\n}\n\nfunction Fox-Bin-2-Prg {\n    param([String]$path)\n    Write-Host \"Calling foxbin2prg.exe on $path\"\n    $foxbin2prg = \"C:\\foxbin2prg\\foxbin2prg.exe\"\n    $output = & $foxbin2prg $path | Out-Null\n    return $output\n}\n\nfunction Rebase-Callback {\n    $revision = & git rev-parse HEAD\n    Write-Output $revision\n    #try {\n        $data = Get-Data-From-Revision $revision\n        Write-Output \"Parsed commit message: $($data.message)\"\n    \n    $files = & git diff-tree --no-commit-id --name-only -r $revision\n    foreach ($file in $files) {\n        if ($file -match \".*\\.(PJX|SCX|VCX|FRX|LBX|DBC|DBF)$\") {\n            Fox-Bin-2-Prg $file\n        }\n    } \n    git add -A\n    git commit --amend --no-edit -m \"$($data.message) *[#origdate:$($data.orig_date) #tfschangeset:$($data.tfs_id.Split(\";\")[1]) #foxbin2prg]*\" --date \"$($data.date) $($data.time) $($data.meridiem)\"\n    #} catch {}  \n}\n\nRebase-Callback \n    ","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/a6vCytuo","modified":1669824209,"id":"a6vCytuo","size":2517,"lines":81,"own_paste":false,"theme":"","date":1669824209}