Skip to content

discoteq/flock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flock(1)

flock(1) locks files

The simplest thing that could possibly work

To exclusively lock /tmp/my.lock while running the utility echo "hello, world!":

flock /tmp/my.lock echo "hello, world!"

You can also use to run a single instance of rsync at a time - note: no need to escape double quotes

flock -n /tmp/my-lock.lock rsync -avr -e "ssh -p 22" "~/my path with spaces/" user@remote-host:/Documents/

Installing

On macOS using Homebrew:

brew install flock

From source:

FLOCK_VERSION=0.4.0
wget https://github.com/discoteq/flock/releases/download/v${FLOCK_VERSION}/flock-${FLOCK_VERSION}.tar.xz
xz -dc flock-${FLOCK_VERSION}.tar.xz | tar -x
cd flock-${FLOCK_VERSION}
./configure
make
make install

Wait, isn't there already a flock(1)?

Yep, it's part of util-linux.

What makes discoteq flock(1) different is:

  • Support for latest stable Linux (Debian & CentOS), Illumos (OmniOS & SmartOS), Darwin & FreeBSD
  • Testing for all major features and edge conditions
  • ISC license
  • Public access to source history and bug tracking

Project Principles

  • Community: If a newbie has a bad time, it's a bug.
  • Software: Make it work, then make it right, then make it fast.
  • Technology: If it doesn't do a thing today, we can make it do it tomorrow.

Contributing

Got an idea? Something smell wrong? Cause you pain? Or lost seconds of your life you'll never get back?

All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin.

Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here.

It is more important to me that you are able to contribute.

Creating a new issue is probably the fastest way to get something fixed, but feel free to contact me via email ([email protected]), in IRC or however you can.

There's no wrong way to file a bug report, but I'll be able to help fastest if you can describe:

  • what you did
  • what you expected to happen
  • what actually happened

(Some of the above was repurposed with <3 from logstash)