lolcommits /lolcommits
:camera: git-based selfies for software developers
★ 4,818⑂ 247👁 36⑃ 240● 195▤ 78
4,818
stars
+0+-1+-3
247
forks
36
watchers
240
prs
195
issues
78
releases
–
discussions
README
lolcommits
git-based selfies for software developers
lolcommits takes a snapshot with your webcam
every time you git commit, archiving a
"LOLcat" style image. Git blame has
never been so much fun!
Sample images
Feel free to add your own lolcommit to the People Using
Lolcommits
page!
Requirements
Ruby = 3.1
A webcam
ImageMagick
ffmpeg (optional) for animated gif capturing
Installation
macOS
You'll need ImageMagick installed. Homebrew makes this easy.
brew install imagemagick
Then install with:
gem install lolcommits
Optionally add ffmpeg if you plan on capturing animated gifs or videos.
brew install ffmpeg
Linux
Install dependencies using your package manager of choice. For example in
Ubuntu:
sudo apt-get install mplayer imagemagick libmagickwand-dev
For Ubuntu 14.04 or newer, you'll need to manually install ffmpeg, as it no
longer ships with the base image (download
here).
Then install with:
gem install lolcommits
For more details, see Installing on
Linux.
Windows - here be dragons!
It works, but you'll need to follow some extra instructions to get dependencies
installed. See Installing on
Windows.
Usage
Enabling and basic usage
Within any git repository, simply run
lolcommits --enable
Now any git commit will automatically trigger a lolcommit capture! lolcommits
are stored in ~/.lolcommits with a short sha filename and organized into
folders for each git repo.
Follow these
steps
to enable lolcommits across all your repos; using git init and the
init.templatedir setting.
Don't worry about it too much, half the fun of lolcommits is forgetting
it's even installed!
Other commands
OK, if you insist... Since you know about --enable, common sense
suggests there is also a repository specific --disable, hopefully you
can guess what that does.
Other handy common commands include --last, which will open for
display your most recent lolcommit, or --browse, which pops open the
directory containing all the lolcommit images for your current
repository.
Use --help for a full list of available commands.
TIP: Any extra args you pass with --enable are auto-appended to
the git hook capture command. For example;
lolcommits --enable --delay 2 --animate 4 --fork
Configures capturing of an animated gif (4 secs) after a 2 sec delay in a forked
process.
Capture configuration options
lolcommits has some capture options for additional lulz. You can enable
these via environment variables like so;
LOLCOMMITS_DEVICE set a webcam device - except windows
(non-animated) captures
LOLCOMMITS_VIDEO (in seconds) set time for capturing a video -
requires ffmpeg
LOLCOMMITS_ANIMATE (in seconds) set time for capturing an animated
gif - requires ffmpeg
LOLCOMMITS_DELAY (in seconds) set delay time before capturing (for
slow webcams to warmup)
LOLCOMMITS_FORK fork lolcommit runner (capture command forks to a
new process, speedily returning you to your terminal)
LOLCOMMITS_STEALTH disable al