Hey, pardon this very short post, it’s just for the pleasure of blogging, and to balance the usual lengthy ones.
I wanted to commit, one by one, every file of the current directory (it’s useless, don’t ask).
I use legit as the interface to Git, and this one-liner:
(dolist (file (uiop:directory-files "./")) (legit:git-add :paths (pathname file)) (legit:git-commit :files (pathname file) :message (format nil "add ~a" (file-namestring file))))
I guessed the
:files arguments with Slime’s command
argument list which appears in the modline, I wanted a function to
/full/path/file.cl to a name
file.cl and tried the
file-… and found the right thing without effort. I
saw on the complete documentation that
legit:commit wanted a
repository object as first argument, which makes sense, but
legit:git-commit doesn’t and I just iterate on the current working
directory (btw change it in Slime with the
,cd command) so it was
shorter for me.
Just a one liner.
Oh my god, I didn’t know we can do this in Lisp !
Of course we can :p