rlsbl.lock

Advisory file lock to prevent concurrent rlsbl operations.

Uses fcntl.flock on .rlsbl/lock to ensure only one rlsbl process (release, scaffold, etc.) mutates project state at a time.

Functions

acquire_lock

def acquire_lock()

Acquire an exclusive advisory lock on .rlsbl/lock.

If another process holds the lock, prints a waiting message and blocks until the lock is available. Returns early if already locked (prevents fd leak on double-acquire).

release_lock

def release_lock()

Release the advisory lock and close the file descriptor.

rlsbl_lock

def rlsbl_lock()

Context manager that acquires the lock on enter and releases on exit.