Skip to content

n4en/brew-coffee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

brew-coffee

brew-coffee is a lightweight CLI tool to quickly set up and manage developer environments using Homebrew bundles. It provides curated sets of packages for programming languages, cloud providers, Kubernetes, and common development tools, making environment setup fast, consistent, and reproducible.


Features

  • Install complete developer environments in seconds

  • Curated bundles for:

    • Programming: Python, Node.js
    • Cloud: AWS, Azure, GCP
    • Kubernetes & Infra: K8s, Infra
    • Developer Tools: Git, Oh My Zsh, Dev utilities
  • Modular, reusable Brewfiles with shared common tools

  • CLI-friendly management via coffee.sh:

    • install – install bundles
    • clean – remove installed bundles
    • list – show available bundles
    • check – verify bundle installation status
  • Open source & community-friendly


Getting Started

1. Clone the repository

git clone https://github.com/n4en/brew-coffee.git
cd brew-coffee

2. Make the main script executable

chmod +x ./coffee.sh

Usage

coffee.sh is the main entry point. All operations (install, clean, check, list) are delegated to the scripts in scripts/ and handle bundles in bundles/.


List Available Bundles

./coffee.sh list

Output example:

 - python
 - nodejs
 - aws
 - azure
 - gcp
 - k8s
 - infra
 - dev

Install Bundles

Install a single bundle

./coffee.sh install python

Install multiple bundles at once

./coffee.sh install python nodejs aws

Install all bundles

./coffee.sh install

Check Bundles

Verify whether all packages in a bundle are installed:

./coffee.sh check aws

Check all bundles:

./coffee.sh check

Clean Bundles

Remove installed packages for a bundle:

./coffee.sh clean aws

Only packages listed in the bundle and its shared files are removed.

Clean all bundles

./coffee.sh clean

⚠️ Important: Cleaning Bundles & Dependencies

When you run ./coffee.sh clean <bundle>, Homebrew will uninstall all packages in that bundle. Homebrew may also automatically remove any dependencies it considers "unneeded" even if those dependencies are used by other bundles. This is standard Homebrew behavior and cannot be controlled by the script.

Best Practice:

  • If you clean a bundle and other bundles break, simply re-run ./coffee.sh install <other-bundle> to restore missing dependencies.
  • For maximum safety, use clean only when you are sure you do not need the packages elsewhere.
  • Consider using a Homebrew restore or backup if you want to revert changes.

Bundle Guidelines

  • All bundles are located in the bundles/ directory.
  • Bundle naming follows <name>.Brewfile.

Adding New Bundles

  1. Create a new Brewfile in bundles/:
touch bundles/my-new-bundle.Brewfile
  1. Add Homebrew packages and optional comments.
  2. Include shared tools if needed:
eval File.read("./bundles/infra.Brewfile")
  1. Install the new bundle via:
./coffee.sh install my-new-bundle

Customizing Bundles

  • You can freely add or remove packages in any bundle (bundles/*.Brewfile) to suit your needs.
  • The provided bundles include packages that are most commonly used by developers, but you can tailor them for your own workflow or team.

Contributing

Contributions are welcome! You can:

  • Add new bundles for different tech stacks
  • Update existing Brewfiles
  • Improve CLI scripts or documentation

Steps:

  1. Fork the repository
  2. Create a feature branch:
git checkout -b feature/my-new-bundle
  1. Make changes
  2. Submit a Pull Request

Platform Compatibility

  • ✅ Tested and works on both Linux and macOS (Apple Silicon)

About

Brew your dev environment in seconds with curated Homebrew Bundles

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published