All Projects → pshirali → workbench

pshirali / workbench

Licence: Apache-2.0 license
A hierarchical environment manager for bash, written in bash.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to workbench

salak.rs
A multi layered configuration loader and zero-boilerplate configuration parser.
Stars: ✭ 27 (+58.82%)
Mutual labels:  environment, env
ts-dotenv
Strongly-typed environment variables for Node.js
Stars: ✭ 18 (+5.88%)
Mutual labels:  environment, env
Framer Modules
Discover, install and save your favorite modules at one place
Stars: ✭ 338 (+1888.24%)
Mutual labels:  modules, manager
gatsby-plugin-dynamic-routes
Creating dynamic routes based on your environment and/or renaming existing routes
Stars: ✭ 14 (-17.65%)
Mutual labels:  environment, env
Pydockenv
Python virtual environment, but backed by Docker!
Stars: ✭ 463 (+2623.53%)
Mutual labels:  environment, virtualenv
ini
📝 Go INI config management. support multi file load, data override merge. parse ENV variable, parse variable reference. Dotenv file parse and loader. INI配置读取管理,支持多文件加载,数据覆盖合并, 解析ENV变量, 解析变量引用。DotEnv 解析加载
Stars: ✭ 72 (+323.53%)
Mutual labels:  environment, env
pyenvdiff-lib
Python environment comparison tool
Stars: ✭ 23 (+35.29%)
Mutual labels:  environment, virtualenv
envrc-rs
Auto source bash .envrc of your workspace
Stars: ✭ 27 (+58.82%)
Mutual labels:  environment, direnv
environment
🌳 Environment variable configuration for Node.js made easy.
Stars: ✭ 12 (-29.41%)
Mutual labels:  environment, env
dotenvy
Speed up your production sites by ditching .env for key/value variable pairs as Apache, Nginx, and shell equivalents
Stars: ✭ 31 (+82.35%)
Mutual labels:  environment, env
env-diff
Env-diff is a lightweight library which sync your .env files with .env.dist by composer scripts, hooks or manual running
Stars: ✭ 24 (+41.18%)
Mutual labels:  environment, env
envyable
The simplest yaml to ENV config loader.
Stars: ✭ 78 (+358.82%)
Mutual labels:  env
wfm
原生PHP在线文件管理器,原生PHP在线文件编辑器,php在线文档管理
Stars: ✭ 17 (+0%)
Mutual labels:  manager
nextjs-monorepo-example
Collection of monorepo tips & tricks
Stars: ✭ 874 (+5041.18%)
Mutual labels:  workspace
shopyo
shopyo.readthedocs.org
Stars: ✭ 66 (+288.24%)
Mutual labels:  modules
fetch-all-the-things
A list of *nix fetch utilities
Stars: ✭ 43 (+152.94%)
Mutual labels:  modules
EnvMapTooL
No description or website provided.
Stars: ✭ 25 (+47.06%)
Mutual labels:  environment
cybernode-archive
🚀 Manager of docker images for cybernomics
Stars: ✭ 20 (+17.65%)
Mutual labels:  manager
docker-environment
Flyve MDM Docker Environment
Stars: ✭ 49 (+188.24%)
Mutual labels:  environment
vscode-powertools
A swiss army knife with lots of tools, extensions and (scriptable) enhancements for Visual Studio Code.
Stars: ✭ 44 (+158.82%)
Mutual labels:  workspace

WorkBench

CircleCI

Status: Alpha

WorkBench is a hierarchical environment manager for *nix shells. It sources shell-code distributed across multiple levels of a folder hierarchy and invokes environments with the combination. Code could thus be implemented to operate at different scopes, allowing clear overrides at each folder depth and easy overall maintenance while managing several hundred environments.

Demo Screencast

Documentation: wb.rtfd.io

Refer to the documentation for installation, conceptual overview, usage and other reference material.

Another env manager! Why?

WorkBench is yet another tool to manage environments. It is similar to (and is heavily inspired by) Desk.

WorkBench differs from other environment management tools in the following ways:

  1. Hierarchical by nature. Code, by design can be distributed across files to fit shallow or deep hierarchies.
  2. Minimal features. WorkBench only generates and runs the enviroment. It doesn't lookup or parse env code.
  3. Batteries not included. You build your own stack of functions to fit your needs.
  4. Configurable invocation modes and entrypoints. Easy to switch contexts via rcfiles.
  5. Bring your own security. Implement your own hook logic before execution. Skip if you don't need it (CI/automated envs)
  6. Scriptable; with distinct exit codes. Write wrappers to re-execute env code in CI or other build environments.
  7. Scalable. Designed to reduce maintenance effort when you scale up to hundreds of environments. Easy to organize.

WorkBench was built with a less-is-more mindset. Docs were written with a more-the-merrier mindset. :)

WorkBench does have a learning curve. You will need to go through the documentation to understand its capabilities. It'd probably be some more time before you appreciate and exploit the hierarchy and flexibility of entrypoints. Hopefully, by then, it'll grow on you.

Alternatives

Desk is the best alternative. It comes with command & help lookup, and wider shell support out-of-the box.

Others tools that flirt with environments include direnv, modules, asdf

Development status and roadmap

WorkBench is currently alpha. While there really aren't any additional features planned, there may be some tweaks to improve how it interacts with the environment code. The CLI and the exitCodes are stable.

WorkBench has system tests written using Python3's unittest framework. No additional python packages are necessary to run tests. Python 3.7 is preferred.

Following items will be taken up in the near future:

  1. Code coverage (using bashcov)
  2. Wider shell support. Currently WorkBench has been written with bash in mind. It may undergo changes to be more POSIX compliant and get tested against a wider range of shells.

License

Apache 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].