Sometimes, I want to go to the prompted
git blame
th colleagues, look them kindly in the eye and talk about sore. At such times, the absence of the
git punish
seems unimaginable.
At first, I intended to write a post in “I am promoting”, but I really wanted to talk about technical details, so please forgive the link to my
git-punish.io collected on my knee.
The task was simple: until the excitement had disappeared, to write something caused by
git punish
disassembling output of the
git blame
command and the return link to the online page.
The first thing that came of course
')
git config --global alias.punish "...shell command..."
But it quickly became clear that you would not do much. On the second decision brought someone's
good advice on Coderwall. The approach immediately seemed beautiful and free from limitations. It turns out that in any place listed in
$PATH
can create an executable file
git-%command%
which will add a new command to git.
It turned out like this:
The parameter
--line-porcelain
includes an extended output for each line, which is convenient to parse. Add to the end user parameters
$@
. Then
POST
all output to
git-punish.io/create
.
Parsing the output is of little interest, but if you really want to see it
here . The terminal displays the short URL generated by the service.
Such are the cases. I will be glad to advice, tips and other blame / punish.
UPDJust in case a disclaimer, I realized that he is needed here. This is a joke service.