#Brewfile

1 messages · Page 1 of 1 (latest)

rapid canyon
#

As much as I hate toplevel config files, would if be helpful for new users to include a toplevel Brewfile
like

cask "docker"

# Python dependencies
brew "pyenv"
brew "pdm"

# other things example
brew "pnpm"

Just saw in https://github.com/polarsource/polar while working on a thing and thought "hmm maybe"

#

also we need this button its cool!

remote cloak
#

Sorry I'm a bit naive to this, what does that Brewfile give a new user?

rapid canyon
#

On my mac I could just run brew bundle and it would see the above and install docker, pyenv, pdm, pnpm.
Not super useful for anything more than people that dont use those tools or windows users but macOS/Linux could benefit maybe.

Probably not a "great" idea just thought i'd pitch it. Im 50/50 because i hate cluttering the top level

remote cloak
#

Ah I see, cool - I don't have any problems with the idea, but prob better to hear from people who aren't only just finding out what these things are 🙂

distant pumice
#

It sounds good. But in reality, it's yet another tool the user has to install, manage, and keep updated. IMO, the answer is a makefile and shell scripts

#
define brew_install
    HOMEBREW_NO_AUTO_UPDATE=1 brew `brew ls --versions "$(1)" | wc -l | xargs expr | sed 's/0/install/' | sed 's/1/upgrade/'` "$(1)"
endef
SHELL := /bin/bash

.PHONY: install-osx-dev-deps
install-osx-dev-deps: ## Installs homebrew and dependencies.
    @if ! [ $(which brew) ]; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"; fi
    $(call brew_install,python3)
    $(call brew_install,yarn)
    $(call brew_install,node)
    $(call brew_install,postgresql)
    $(call brew_install,redis)
    $(call brew_install,minio)
    $(call brew_install,mailhog)
    $(call brew_install,hadolint)
    $(call brew_install,shellcheck)
    $(call brew_install,dotenv-linter)
    @brew services start redis
    @brew services start minio
    @brew services start mailhog

fallow adder
#

I also prefer the Makefile approach mainly because it always irks me whenever there are so many top-level config files 😄