lolcommits

? git-based selfies for software developers

  • 所有者: lolcommits/lolcommits
  • 平台:
  • 許可證: GNU Lesser General Public License v3.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

lolcommits

Gem
Travis
Depfu
Maintainability
Test Coverage

git-based selfies for software developers

lolcommits takes a snapshot with your webcam every time you git commit
code, and archives a lolcat style image with it. Git blame has never
been so much fun.

By default, the lol images are stored by a Github style short SHA in a
~/.lolcommits directory created for you.

History

Originally created by @mroth in 2011 as a joke project for Hack &&
Tell
, lolcommits has grown considerably since then, and is now
primarily maintained by @matthutchinson.

Thank you to all of the contributors throughout the years!

Sample images

Please add your own lolcommit to the People Using
Lolcommits

page on our wiki!

Requirements

Installation

macOS

You'll need ImageMagick installed.
Homebrew makes this easy.

brew install imagemagick

Then install with:

[sudo] gem install lolcommits

If you're using RVM (or rbenv), you can/should probably omit the sudo,
but the default macOS Ruby install usually requires it.

Lolcommits v0.8.1 was the last release to support Ruby < 2.0. If you'd
like to use older Rubies try:

[sudo] gem install lolcommits --version 0.8.1   # for Ruby 1.9
[sudo] gem install lolcommits --version 0.7.0   # for Ruby 1.8

Linux

Install these 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 need to manually install ffmpeg since it
no longer ships with the default Ubuntu sources (downloads
here
).

Then install with:

gem install lolcommits

For more details, see Installing on
Linux
.

Windows - here be dragons!

It works, but you'll need some more detailed instructions to get the
dependencies installed. See the wiki page for Installing on
Windows
.

Usage

Enabling and basic usage

Within any git repository, simply run lolcommits --enable. From that
point on, any git commit will automatically trigger a lolcommit capture!
By default, all lolcommits are stored in ~/.lolcommits and placed in a
subdirectory by project name, with a filename matching the commit hash.

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 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. You can always do --help for a full list of available
commands.

NOTE: Any extra arguments you pass with --enable are appended to
the git post-hook capture command. For example;

lolcommits --enable --delay 5 --animate 4 --fork

Will configure capturing of an animated gif (4 secs) after a 5 sec delay
in a forked process. See the section below for more capture
configuration options.

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 all notification messages when capturing
  • LOLCOMMITS_DIR set the output directory used for all repositories
    (defaults to ~/.lolcommits)
  • LOLCOMMITS_CAPTURE_DISABLED disables lolcommit capturing in the
    commit hook (when set as 'true')

Or they can be set with arguments to the capture command (located in
your repository's .git/hooks/post-commit file).

  • --device {name} or -d {name}
  • --video {seconds} or -v {seconds}
  • --animate {seconds} or -a {seconds}
  • --delay {seconds} or -w {seconds}
  • --fork
  • --stealth

You can configure lolcommit text positions, font styles (type, size,
color etc.) or add a transparent overlay to your images. Simply
configure the default loltext plugin with this command:

lolcommits --config -p loltext

To find out more about styling, read about the loltext
options
.

Use lolcommits --devices to list all attached video devices available
for capturing.

Finally, run lolcommits --help for details on all the available
arguments.

Videos

You can tell lolcommits to capture an mp4 video (instead of an image).
ffmpeg is required and can be installed like
so;

To enable, use the -v {seconds} option or set the LOLCOMMITS_VIDEO
environment variable with the number of seconds to capture.

Animated Gifs

Animated gifs can take a while to generate (depending on the number of
seconds you capture and the capabilities of your machine).

To enable, use the -a {seconds} option or set the LOLCOMMITS_ANIMATE
environment variable with the number of seconds to capture. If you find
animated capturing takes too long, try setting LOLCOMMITS_FORK=true.

Example animated lolcommit
gif

NOTE: If both LOLCOMMITS_ANIMATE and LOLCOMMITS_VIDEO options are set, the
video duration takes precedence and is applied to both captures.

Plugins

A growing number of plugins are available, allowing you to transform or
share your lolcommits with others. The default plugin simply appends
your commit message and sha to the captured image. Others can post to
Twitter, Tumblr (and other services), or even translate your commit
messages to
lolspeak.
Check them out on our plugins
page
.

To list all installed plugins use:

lolcommits --plugins

Installed plugins can be easily enabled, configured or disabled with the
--config option:

lolcommits --config
# or
lolcommits --config -p loltext

Interested in developing your own plugin? Follow this simple
guide

at the Lolcommits Sample Plugin README.

Timelapse

Watch your face decay while you program, with an animated timelapse gif!

lolcommits --timelapse
# or for just today's lolcommits
lolcommits --timelapse --period today

Troubles?

Try our trouble-shooting
FAQ, or take a read
through our wiki. If
you think something is broken or missing, please raise a Github
issue
(and please
check if we haven't already
addressed

it).

License

The program is available as open source under the terms of
LGPL-3.

主要指標

概覽
名稱與所有者lolcommits/lolcommits
主編程語言Ruby
編程語言Ruby (語言數: 3)
平台
許可證GNU Lesser General Public License v3.0
所有者活动
創建於2011-10-02 15:25:44
推送於2025-04-06 19:58:24
最后一次提交
發布數114
最新版本名稱v0.18.0 (發布於 2025-02-15 18:50:03)
第一版名稱v0.0.1 (發布於 2012-03-29 18:34:28)
用户参与
星數4.8k
關注者數40
派生數245
提交數1.3k
已啟用問題?
問題數195
打開的問題數40
拉請求數192
打開的拉請求數0
關閉的拉請求數48
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?