All Projects → UltimateSoftware → envctl

UltimateSoftware / envctl

Licence: other
Tool for managing local dev environments

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to envctl

go-12factor-example
Example the 12factor app using golang
Stars: ✭ 20 (-16.67%)
Mutual labels:  cobra
punic
Punic is a remote cache CLI built for Carthage and Apple .xcframework
Stars: ✭ 25 (+4.17%)
Mutual labels:  tooling
Mamba
Mamba is a payload for PS3 apps that adds support for ISO, netiso, plugins, PS3MAPI, etc. It's derived from Cobra.
Stars: ✭ 24 (+0%)
Mutual labels:  cobra
laravel-conditional-providers
THIS PACKAGE HAS BEEN DEPRECATED — Load Laravel service providers and facades based on the current environment.
Stars: ✭ 26 (+8.33%)
Mutual labels:  environment
expresol
Library for executing customizable script-languages in python
Stars: ✭ 11 (-54.17%)
Mutual labels:  environment
BFSG
BFSG - BruteForce String Generator 😾
Stars: ✭ 16 (-33.33%)
Mutual labels:  environment
td-completes-me
A Simple Auto Completion Engine for Touch Designer
Stars: ✭ 85 (+254.17%)
Mutual labels:  tooling
separate-env-module
Tear your variables apart!
Stars: ✭ 53 (+120.83%)
Mutual labels:  environment
WhatTheStack
See a pretty error screen when your Android app crashes
Stars: ✭ 240 (+900%)
Mutual labels:  tooling
AppToolkit
🐘 The Front-end Env Toolkit(前端环境管理工具)
Stars: ✭ 411 (+1612.5%)
Mutual labels:  environment
dotfiles
My personal app/env configs and dotfiles.
Stars: ✭ 27 (+12.5%)
Mutual labels:  environment
Robotics-Warehouse
A warehouse environment for robotics simulation in Unity.
Stars: ✭ 17 (-29.17%)
Mutual labels:  environment
shenv
Simple shell version management
Stars: ✭ 27 (+12.5%)
Mutual labels:  environment
pyenvdiff-lib
Python environment comparison tool
Stars: ✭ 23 (-4.17%)
Mutual labels:  environment
covid-tracking-dash
Dash app for COVID Tracking Project (https://covidtracking.com/)
Stars: ✭ 26 (+8.33%)
Mutual labels:  tooling
drevops
💧 + 🐳 + ✓✓✓ + 🤖 + ❤️ Build, Test, Deploy scripts for Drupal using Docker and CI/CD
Stars: ✭ 55 (+129.17%)
Mutual labels:  tooling
svn2git
Tool to help and automate migration from SVN to GitLab
Stars: ✭ 34 (+41.67%)
Mutual labels:  tooling
ts-dotenv
Strongly-typed environment variables for Node.js
Stars: ✭ 18 (-25%)
Mutual labels:  environment
level-test
Inject temporary and isolated level stores (leveldown, level-js, memdown or custom) into your tests.
Stars: ✭ 19 (-20.83%)
Mutual labels:  tooling
lerna-cola
Superpowers for your Lerna monorepos.
Stars: ✭ 23 (-4.17%)
Mutual labels:  tooling

envctl

Build Status


Every codebase has a set of tools developers need to work with it. Managing that set of tools is usually tricky for a bunch of reasons. Getting new devs set up with a codebase can often get complicated.

But it really doesn't have to be complicated.

Envctl manages a codebase's tools by allowing its authors to maintain a sandbox environment with all the stuff they need to work on it.

You can find a sample repo with an environment already set up here.

Installation Guide

To install envctl, just download the current release and extract the binary to somewhere in your $PATH.

Alternatively, if you have go installed, you can compile from source.

Quick Start

$ cd $HOME/src/my-repo
$ envctl init
$ envctl create
$ $EDITOR envctl.yaml
$ envctl login # do stuff, then exit
$ envctl destroy

Configuration Guide

The configuration takes the following format:

---
# Required - the base container image for the environment
image: ubuntu:latest

# Specifies whether the base image should be cached. Defaults to true.
cache_image: false

# Required - the shell to use when logged in
shell: /bin/bash

# The mount directory inside the container for the repo
mount: /mnt/repo

# An array of commands to run in the specified shell when creating the
# environment.
bootstrap:
- ./bootstrap.sh
- ./extra-config.sh

# An array of environment variables. Anything with a $ will be evaluated against
# the current set of exported variables being used by the current session. If
# any of them evaluate to nothing, envctl will fail to create the environment.
variables:
  FOO: bar
  SECRET: $SECRET

# A map of layer 3 protocols to ports that can be exposed by Docker.
ports:
  tcp:
  - 4567

Contributing Guide

  • If you're new to Go, or don't know quite where to start, feel free to ask for help. Check the issues for things labeled "good first issue".
  • Pull requests are always welcome, no matter how crazy they are.
  • Write tests, and make sure go test ./... passes.
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].