Skip to content
/ cpenv Public

Seamlessly copy and synchronize .env files across projects with ease.

License

Notifications You must be signed in to change notification settings

y3owk1n/cpenv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Local .env copy CLI

GitHub Tag GitHub License

EnvCopy CLI is a powerful command-line tool that simplifies the process of copying environment files for different projects. With just a few commands, you can effortlessly manage and replicate environment configurations across your projects.

This is useful when it comes to working within git worktrees, and you need the same .env(s) across multiple worktrees. Also sometimes when you need to run commands like git reset --hard; and git clean -dfx, you can always get your .env file back easily.

Simple Project Demo

simple-demo.mp4

Monorepo Project Demo

monorepo-demo.mp4

Prerequisites

Before using EnvCopy CLI, ensure you have the following prerequisites:

  1. Running cpenv config init for the first time will prompt you to setup your env-files folder.
  • You can set it to any folder you like, but the default is ~/.env-files. I personally set it to an icloud drive path.

  • The config file will be at $HOME/.config/cpenv/cpenv.yaml

  1. Organize your projects within your chosen directory. Each project should have its own subdirectory.
  ~/.env-files
  ├── single-env-project
  │   ├── .env
  ├── multi-env-project
  │   ├── .env
  │   ├── apps
  │   │   ├── web
  │   │   │   ├── .env
  │   │   ├── api
  │   │   │   ├── .env
  └── other-projects...

Features

  • Automatic Project Setup: Automatically setup the env-files folder if it doesn't exist through simple prompts.

  • Interactive Project Selection: Easily choose the project for which you want to copy environment files using a user-friendly interactive prompt or specify it directly through command-line options.

  • Backup Env(s) To Vault: Back up your project env files to vault and ignore *.template and *.example.

Getting Started

Installation

Install via brew:

brew tap y3owk1n/tap
brew install y3owk1n/tap/cpenv

Usage

Go to your project directory and run the following command in your terminal:

cpenv config init -> initialize configurations for vault
cpenv config edit -> edit configurations for vault
cpenv copy -> start copy interactive flow
cpenv backup -> start backup interactive flow
cpenv vault -> open your vault in finder

This will launch the interactive mode, guiding you through project selection, file copying and backups.

Options

For root

  • -h, --help: Display help for command
  • -v, --version: Display current version

For cpenv copy

  • No options for now

For cpenv backup

  • No options for now

For cpenv config

  • No options for now

For cpenv vault

  • No options for now

Troubleshooting

If you encounter any issues or errors, please refer to the troubleshooting section in the wiki (Not ready yet).

Contributions

Feel free to contribute by opening issues, suggesting enhancements, or submitting pull requests. We value your feedback and ideas to enhance the capabilities of cpenv further!

License

This project is licensed under the MIT License. Feel free to use, modify, and distribute it as you see fit.

Happy coding!

About

Seamlessly copy and synchronize .env files across projects with ease.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages