Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ulrikstrid/reenv

dotenv-cli implementation in native ReasonML providing near-instant startup times
https://github.com/ulrikstrid/reenv

binary dotenv dotenv-safe fast reasonml

Last synced: 5 days ago
JSON representation

dotenv-cli implementation in native ReasonML providing near-instant startup times

Awesome Lists containing this project

README

        

# reenv

[![Build Status](https://dev.azure.com/strid/reenv/_apis/build/status/ulrikstrid.reenv?branchName=master)](https://dev.azure.com/strid/reenv/_build/latest?definitionId=27&branchName=master)

[dotenv-cli](https://github.com/entropitor/dotenv-cli) implementation in native ReasonML. The goal is to have feature parity with [dotenv](https://github.com/motdotla/dotenv) but be implemented in Reason. If there is a feature missing please log an issue.

reenv is compiled as a binary and there is no node involved when running it as you can see in the [benchmarks section](#simple-benchmarks).

## Installation

reenv is available on all mainstream desktop platforms (Windows, macOS and Linux) and is installable via `npm`.

`npm install -g reenv`

## Usage

```
NAME
reenv - Read dotenv file(s) and supply them to the program.

SYNOPSIS
reenv [OPTION]... COMMAND [ARGS]...

ARGUMENTS
ARGS
Arguments passed to the command.

COMMAND (required)
Command to run

OPTIONS
-e FILE, --env-file=FILE
The .env files to read variables from.

--help[=FMT] (default=auto)
Show this help in format FMT. The value FMT must be one of `auto',
`pager', `groff' or `plain'. With `auto', the format is `pager` or
`plain' whenever the TERM env var is `dumb' or undefined.

-s FILE, --safe=FILE
The .env file with keys that need to be provided.

--version
Show version information.

EXIT STATUS
reenv exits with the following status:

0 on success.

124 on command line parsing errors.

125 on unexpected internal errors (bugs).

EXAMPLES
To pass flags to the command you are executing, use -- before your
command. reenv -e .env -- ls --all.

BUGS
File an issue at https://github.com/ulrikstrid/reenv/issues
```

### example

`reenv -e .env -e .env.dev node index.js`

## simple benchmarks

```
Ulriks-MBP:reenv ulrik$ time TEST=hello printenv TEST
hello

real 0m0.004s
user 0m0.001s
sys 0m0.003s
Ulriks-MBP:reenv ulrik$ time reenv -e test/fixtures/.env printenv TEST
hello world!

real 0m0.008s
user 0m0.003s
sys 0m0.003s
Ulriks-MBP:reenv ulrik$ time dotenv -e test/fixtures/.env printenv TEST
hello world!

real 0m0.088s
user 0m0.067s
sys 0m0.018s
```

## Developing:

```
npm install -g esy pesy
git clone
esy install
esy build
```

### Running Binary:

After building the project, you can run the main binary that is produced.

```
esy x reenv
```

### Running Tests:

```
# Runs the "test" command in `package.json`.
esy test
```