Node.js lock library for multi-process read/write
A inter-process and inter-machine lockfile utility that works on a local or network file system
provides locking mechanism to sync across browser tabs
DOM trap for a focus
🔐Body scroll locking that just works with everything
It is a trap! (for a focus)
A mutex for guarding async workflows
Lock on asynchronous code
TypeScript definitions for async-lock
A locking primitive using redis.
It is a trap! (for a focus)
Mutex locks for async functions
A inter-process and inter-machine lockfile utility that works on a local or network file system
A cron-like and not-cron-like job scheduler for Node.
React focus lock for all Chakra components
Enables body scroll locking (for iOS Mobile and Tablet, Android, desktop Safari/Chrome/Firefox) without breaking scrolling of a target element (eg. modal/lightbox/flyouts/nav-menus)
File based mutex
Simple lock class
lock asynchronous resources.
Battle-hardened distributed locking using redis
mutex lock for javascript
Throttle the parallelism of an asynchronous (promise returning) function / functions
Distributed lock with Redis implementation for Node.js
Implements Lock and RWLock synchronization primitives.
Rust client for go-license verification system
Professional-grade persistent project memory for AI coding assistants - No more explaining the same codebase repeatedly
LexActivator SDK for Rust
Simplified implementation of Redlock (distributed lock manger by antirez). Right now it works with single Redis node only.
FAP is a ruby gem build on top of the excellent Nokogiri, to turn boring XML, or HTML documents into yummy ruby objects. Right now, it only support using Nokogiri's XPath selectors, and simple "relations" between a document nodes, though this will hopefully get better. FAP's ideas are loosely connected to tools built by some adventurous fellas at AF83, who still do PHP things to their brains. Some credits should go to them, and to the horrid weather that kept me locked inside last week-end. And yes, I know it's a stupid name. But I'm sure you can come up with a decent acronym. :)
Chef-Berksfile-Env ================== A Chef plugin which allows you to lock down your Chef Environment's cookbook versions with a Berksfile. This is effectively the same as doing `berks apply ...` but via `knife environment from file ...`. View the [Change Log](https://github.com/bbaugher/chef-berksfile-env/blob/master/CHANGELOG.md) to see what has changed. Installation ------------ /opt/chef/embedded/bin/gem install chef-berksfile-env Usage ----- In your chef repo create a Berksfile next to your Chef environment file like this, chef-repo/environments/[ENV_NAME]/Berksfile This is the default location that will used by the plugin. We have to put the Berksfile in its own directory since [multiple Berksfiles can't exist in the same directory](https://github.com/berkshelf/berkshelf/issues/1247). The berksfile should include any cookbooks that your nodes or roles explicitly mention for that environment, source "https://supermarket.getchef.com" cookbook "java" cookbook "yum", "~> 2.0" ... Next we need to generate our Berksfile's lock file, berks install Your environment file must by in `.rb` format and look like this, require 'chef-berksfile-env' # The name must be defined first so we can use it to find the Berksfile name "my_env" # Load Berksfile locked dependencies as my environment's cookbook version contraints load_berksfile ... Now our environment will use the locked versions of the cookbooks and transitive dependencies generated by our Berksfile. Upgrading to the latest dependecies is now as simple as, berks install Our Berksfile also provides an easy way to ensure all the cookbooks and their versions that our environment requires are uploaded to our chef-server, berks upload How the Plugin Finds the Berksfile ---------------------------------- If you are curious how the plugin knows to find the Berksfile in `chef-repo/environments/[ENV]/Berksfile`, you want to put your Berksfile somewhere else or you have run into this error `Expected Berksfile at [/path/../Berksfile] but does not exist`, this section will explain how this works and ways to tweak the path or fix your error. `load_berksfile` has an optional argument which represents the path to your Berksfile. This path can be pseduo relative (explained in a moment) or absolute. By default the value is `environments/[ENV_NAME]/Berksfile`. By pseduo relative I mean that its a relative path but the plugin will check to see if the directory we are executing from partially matches our relative path. So if we are running knife from `/home/chef-repo/environments` and our relative path is `chef-repo/environments/dev/Berksfile` the plugin will see that the relative path is partially included in our execution directory and will attempt to merge the two to come up with `/home/chef-repo/environments/dev/Berksfile`. If we can't make any match at all we attempt to guess the path by just joining the relative path with our execution directory. So why do we do this? Well the only way to use this plugin is if your environment is in Ruby format. Chef's `knife from file ...` uses Ruby's `instance_eval` in order to do this. This means the code on Chef's end effectively looks like this, env.instance_eval(IO.read(env_ruby_file)) which means that any context about the location of the environment file is lost. So we have no great way to discern the location of our environment Ruby file, so instead we guess.
No description provided.
No description provided.
No description provided.