Skip to main content

Coordinate locking resources for humans and machines using a simple sqlite file.

Project description

lockmyresource

Coordinate locking resources for humans and machines, using a simple sqlite DB

There is a CLI for machines and admins and a minimal tk GUI for lock&release.

Quick demo

Demo of UI and CLI

Usage

usage: lockmyresource [-h] [--dbfile DBFILE] [--debug] {list,lock,release} ...

Lock some resources

positional arguments:
  {list,lock,release}  Commands
    list               List resources
    lock               Lock a resource
    release            Release a resource

optional arguments:
  -h, --help           show this help message and exit
  --dbfile DBFILE      Database to use
  --debug

NOTE that the current user's username will be used for all operations.

NOTE the db will be created if it does not yet exist

List resources

usage: lockmyresource list [-h] [--format {text,csv,json}]

Sample output

$ lockmyresource list
Resource User  Locked_at                  Comment
fork1    Hegel 2021-01-17 11:42:36.459921 Ideally, I can use fork1
fork2    Kant  2021-01-17 11:52:13.768924 Can't take fork1, I guess
spoon    None  None                       None

Lock existing / Create new resource and lock it

usage: lockmyresource lock [-h] resource comment

NOTE that the comment is mandatory.

NOTE that deletion of resources is not yet implemented, you need to manipulate the sqlite DB manually for now

Example

$ lockmyresource lock fork1 'To eat or not to eat...'
Obtained lock for Resource(name='fork1')

Release a lock

usage: lockmyresource release [-h] resource

NOTE That only the locking user can release a lock.

Example

$ lockmyresource release fork1
Released lock for Resource(name='fork1')

Wait for a lock to be released

usage: lockmyresource subscribe resource [shell-command]

NOTE Will not wait if it is the current user who has locked the resource

Examples

$ lockmyresource subscribe fork1 && aplay tada.wav

$ lockmyresource subscribe fork2 'start trigger.bat' --interval=10

======= History

0.4.0

  • Try to use display name of users on windows

0.3.0 (2022-05-21)

  • Show version number on the UI
  • Subscribe: get notified when a resource becomes available

0.2.0 (2021-04-03)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

lockmyresource-0.4.0-py2.py3-none-any.whl (31.7 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page