ddenv
ddenv (Denis’ Developer Environment) is a tool for maintaining a local environment for development.
Caution
This is pre-release software.
Requirements
First, ensure you have Homebrew installed, and are using a supported shell (zsh, bash, or fish).
Then, run brew install denisdefreyne/tap/ddenv
.
Quick start
Create a ddenv.yaml
file which contains the list of dependencies to manage. For example:1
up:
- homebrew: overmind
- ruby
- bundle
- node: 20.12.2
- npm
Then, run ddenv
:
% ddenv
Installing Homebrew package ‘overmind’ skipped
Installing Homebrew package ‘ruby-install’ skipped
Installing Ruby 3.3.6 skipped
Adding Shadowenv to shell skipped
Creating Shadowenv dir done
Adding Shadowenv dir to .gitignore done
Adding Ruby 3.3.6 to Shadowenv done
Installing Ruby gem bundler done
Installing bundle done
Installing Homebrew package ‘node-build’ checking...
Installing Node 20.12.2 pending
Adding Node 20.12.2 to Shadowenv pending
Installing npm packages pending
Now your local developer environment is ready to be used.
Goals
-
homebrew: PACKAGENAME
installs the Homebrew package with the given name.e.g.
- homebrew: overmind
-
ruby
installs Ruby (with the version specified in the.ruby-version
file).e.g.
- ruby
-
bundle
runsbundle install
.e.g.
- bundle
-
node: VERSION
installs the give Node.js version.e.g.
- node: 22.11.0
-
npm
installs packages from package.json using npm.e.g.
- npm
-
postgresql: MAJOR_VERSION
installs PostgreSQL (through Homebrew), starts it, and sets up environment variables with PostgreSQL connection details (POSTGRES_USER
,POSTGRES_PASSWORD
,POSTGRES_HOST
, andPOSTGRES_PORT
).e.g.
- postgresql: 17
Footnotes
-
This example relies on a
.ruby-version
file being present, e.g. with the file contents3.3.6
. ↩