Skip to content

Instantly share code, notes, and snippets.

@victorouse
Created May 25, 2022 08:04
Show Gist options
  • Select an option

  • Save victorouse/5ba1d52c102ff2f4f997a9623c15724a to your computer and use it in GitHub Desktop.

Select an option

Save victorouse/5ba1d52c102ff2f4f997a9623c15724a to your computer and use it in GitHub Desktop.

Revisions

  1. victorouse created this gist May 25, 2022.
    548 changes: 548 additions & 0 deletions Brewfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,548 @@
    # ## Introduction
    #
    # This file installs many apps, including office suites, multimedia suites,
    # programming langauges, unix utilities, sysadmin tools, and fonts.
    #
    # This file is organized in meaningful sections because we want to
    # make it easy for you to pick and choose sections that you want.
    #
    # There are many TODO items in this file. If you want, help us
    # describe these and organize them into the relevant sections.
    #
    # The file is generally organized in these sections:
    #
    # * Software that's fine for everyone,
    # e.g., browsers, players, editors.
    #
    # * Software that's especially suitable for programmers,
    # e.g., compilers, databases, languages, servers, etc.
    #
    # * Paid software that requires a license or purchase,
    # e.g. JetBrains, OmniGroup, Paw, etc.
    #
    # * Libraries: operating system libraries e.g. lib*.
    #
    # * TODO: a section of uncategorized software.
    #
    # * Fonts
    #
    # ### About Brewfile capabilities
    #
    # To learn about Brewfile capabilties, please see:
    #
    # * http://brew.sh/
    # * http://homebrew-file.readthedocs.io/
    # * https://github.com/Homebrew/homebrew-bundle
    #
    #
    # ### Usage
    #
    # To use this Brewfile via `brew bundle`:
    #
    # $ brew bundle
    ##

    ##
    # Preflight
    ##

    # Tap homebrew
    tap 'homebrew/cask'
    tap 'homebrew/cask-drivers'
    tap 'homebrew/cask-fonts'
    tap 'homebrew/cask-versions'
    tap 'homebrew/core'
    tap 'homebrew/bundle'
    tap 'homebrew/services'

    ###########################################################################
    #
    # SOFTWARE THAT IS TYPICALLY FINE FOR EVERYONE
    #
    ###########################################################################

    ##
    # Browsers
    ##

    # Google Chrome web browser
    cask 'google-chrome'

    ##
    # Chat
    #
    # We favor Riot.im because it is free open source,
    # and also works closely with Mozilla foundation.
    ##

    # Discord chat
    cask 'discord'

    # Slack chat client
    cask 'slack'

    ##
    # Terminals
    #
    # We typically use `tmux`, `tmate`,
    # and sometimes fall back on `screen`.
    ##

    # iTerm is our favorite terminal app.
    cask 'iterm2'

    # Terminal prompt
    brew 'starship'

    # Tmux is a newer terminal multiplexer.
    brew 'pkg-config', link: true
    brew 'tmux'
    brew 'reattach-to-user-namespace'

    # tmate is a fork of tmux that makes screen sharing friendlier.
    brew 'tmate'

    ##
    # Shells
    ##

    # Bash is the Bourne Again SHell. Bash is an sh-compatible shell.
    brew 'bash'

    # Programmable completion functions for bash
    brew 'bash-completion'

    # Super fast terminal emulator
    cask 'alacritty'

    ##
    # Passwords
    #
    # We use password-manager applications with many of our projects.
    # If you don't use these, feel free to delete them.
    ##

    # 1password is a password manager
    cask '1password'

    ##
    # Editors
    #
    # We typically use command line editors (vim, emacs, etc.)
    # and sometimes use GUI editors (atom, sublime, etc.)
    ##

    # bat is like `cat` plus line numbers, syntax highlighting, and more.
    brew 'bat'

    # Better diff
    brew 'diff-so-fancy'

    # less is like `more` plus has more capability.
    brew 'less'

    # Vim editor
    brew 'vim'

    # Neovim editor
    brew 'neovim'

    # Screen recorder
    cask 'kap'

    ##
    # Downloaders
    #
    # These items download files and fetch content from the network.
    ##

    # curl is a command line tool for transferring data with URL syntax.
    brew 'curl', link: true

    # Wget is a free software package for retrieving files using HTTP and FTP.
    brew 'wget'

    ##
    # Version control
    #
    # We prefer `git` version control. We also work on a wide
    # range of systems, so we also sometimes use CVS, HG, and SVN.
    ##

    # Git is a free and open source distributed version control system.
    brew 'git'

    ##
    # System related
    #
    # These are fundamental operating system tools that we use often.
    ##

    # GNU Privacy Guard (GnuPG) provides encryption as a free replacement for PGP.
    brew 'gpg'

    # OpenSSL is an open-source implementation of the SSL and TLS protocols.
    brew 'openssl'

    # pkg-config is a helper tool used when compiling applications and libraries.
    brew 'pkg-config', link: true

    # Functions for use by applications that allow users to edit command lines while typing.
    brew 'readline'

    # pkg-config is a helper tool used when compiling applications and libraries.
    brew 'pkg-config'

    # PCRE: Perl-compatible regular expressions, for better searching.
    brew 'pcre'
    brew 'pcre++'

    # fd: a simple, fast and user-friendly alternative to find.
    brew 'fd'

    # FZF is a command line fuzzy finder.
    brew 'fzf'

    ##
    # File synchronization
    #
    # We use `rsync` for our systems administration,
    # and a variety of web-based services for file sharing.
    ##

    # Transmission bittorrent client.
    brew 'transmission-cli'
    cask 'transmission'

    ##
    # Text search
    #
    # We prefer ripgrep because it is very fast and very safe.
    ##

    # ripgrep is text search; we prefer it over grep, ag, git grep, ucg, pt, sift.
    brew 'ripgrep'

    # jq is a lightweight and flexible command-line JSON processor.
    brew 'jq'

    # yq is a lightweight and flexible command-line YAML processor.
    brew 'yq'

    ##
    # Multimedia
    ##

    # Image libraries
    brew 'libgphoto2'
    brew 'libpng'
    brew 'libtiff'

    ## Misc

    # TODO
    brew 'imagemagick'

    ##
    # Server-Related
    ##

    # Docker software containers to help distribute applications.
    brew 'docker'

    # Compose is a tool for defining and running multi-container Docker applications.
    brew 'docker-compose'

    # Docker Machine installs Docker Engine on virtual hosts, and manages the hosts.
    brew 'docker-machine'

    ##
    # Brew cask enables installing typical Mac OS X applications.
    # For example, these formulas may download a `*.dmg` file,
    # then unpack it into the correct `/Applications` directory,
    # and possibly configure the app with typical settings.
    ##

    # Spotify music player
    cask 'spotify'

    # Raycast (better Spotlight)
    cask 'raycast'

    # Notes
    cask 'obsidian'

    ##
    # Mac App Store
    #
    # We use the Mac App Store only when an app is not available
    # in a comparable way via brew install and/or brew cask.
    #
    # We comment out the "mas" commands below, because Apple has
    # changed the App Store capability for command line sign in.
    #
    # Feel free to uncomment any of the below commands that you
    # want, try them, and see if you're able to sign in manually.
    ##

    # Our favorites
    mas 'Slack', id: 803453959

    ##
    # Environment
    ##

    ##
    # Shell
    ##

    # Shell script syntax check linter
    brew 'shellcheck'


    ###########################################################################
    #
    # SOFTWARE THAT IS ESPECIALLY SUITABLE FOR DEVELOPERS
    #
    ###########################################################################

    # Postgres commmand line interface (CLI) with autocomplete
    brew 'pgcli'
    brew 'libpq'

    ##
    # Programming languages
    #
    # This section installs many programming languages:
    # Clojure, Elixir, Erlang, Go, Haskell, Java, JavaScript,
    # Perl, Python, R, Ruby, Scala, Swift, and tooling.
    ##

    ## Clojure

    ## Elixir

    # Elixir programming language built on top of the Erlang VM.
    brew 'elixir'

    ## Erlang

    # Erlang programming language for scalable high-availability systems.
    brew 'erlang'

    ## Go

    # Go programming language by Google; compare `C`.
    brew 'go'

    ## Haskell

    # Cabal is a package manager for Haskell
    brew 'ghc'
    brew 'cabal-install'

    ## Java

    # Java programming language
    brew 'temurin11'

    # Gradle is a Java build tool
    brew 'gradle'

    # Maven is a Java build tool
    brew 'maven'

    # Android
    cask 'android-studio'
    cask 'android-file-transfer'
    cask 'android-messages'
    cask 'android-ndk'
    brew 'android-sdk'
    cask 'android-platform-tools'
    cask 'android-commandlinetools'

    ## JavaScript

    # Node.js / npm / yarn
    brew 'nvm'
    brew 'yarn'
    brew 'watchman'

    # V8 JavaScript Engine.
    brew 'v8'

    ## Lua

    # Lua scripting language
    brew 'lua'

    # Lua just-in-time compiler
    brew 'luajit'

    ## Python

    # Python programming language, esp. for systems scripting.
    brew 'python'
    brew 'python3'

    ## Ruby

    # chruby changes the current Ruby.
    brew 'chruby'

    # Ruby programming language; compare `perl`, `python`.
    brew 'ruby'

    # Fastlane
    brew 'fastlane'

    # Cocoapods
    brew 'cocoapods'

    # Tool to install various implementations of Ruby.
    brew 'ruby-install'

    ## Rust

    # Rust programming language
    brew 'rustup'

    ## iOS, Objective-C, Swift

    # Command-line application launcher for the iOS Simulator
    brew 'ios-sim'

    ##
    # Programming processes
    ##

    ## Compilers

    # GCC GNU Compiler Collection
    brew 'gcc'

    # LLVM compiler
    brew 'llvm'

    ## Documentation

    ## Serializers

    # Protocol buffers for serializing structured data; compare thrift.
    brew 'protobuf'
    brew 'protobuf-c'

    ##
    # Platforms
    ##

    # Amazon Web Services (AWS) Command Line Interface (CLI)
    brew 'awscli'

    # Google Cloud Platform (GCP)
    cask 'google-cloud-sdk'

    ## Provisioning

    # Terraform common configuration to launch infrastructure.
    brew 'terraform'

    ## Containeriztion

    # Docker assembles applications from components.
    cask 'docker'

    ## Orchestration

    # Kubernetes command-line tool to run commands against Kubernetes clusters.
    brew 'kubectl'

    # Run a single-node Kubernetes cluster in a virtual machine on your personal computer.
    brew 'minikube'

    ###########################################################################
    #
    # LIBRARIES
    #
    ###########################################################################

    ##
    # Libraries
    #
    # We do this near the end of this file,
    # because we expect these will already be
    # installed by a bunch of the software above.
    #
    # This section here is really just to cover our
    # bases to make sure we have the libraries that we
    # sometimes need for building other software later on.
    ##

    # THe libevent API provides provides asynchronous event notification and callbacks.
    brew 'libevent'

    # Magic number recognition library for file types.
    brew 'libmagic'

    # Audio/Visual converters
    brew 'libav'

    # Curl web fetcher
    #brew 'libcurl' # EOL

    # Foreign Function Interface Library
    brew 'libffi'

    # Text encoding
    brew 'libiconv'

    # File magic number recognizer
    brew 'libmagic'

    # Sodium secure cryptography
    brew 'libsodium'

    # GNU libtool is a generic library support script.
    brew 'libtool'

    # XML handlers
    brew 'libxml2'
    brew 'libxslt'

    # High-level interface to X.509 and CMS (Cryptographic Message Syntax)
    brew 'libksba'

    # YAML markup language
    brew 'libyaml'

    # YAML lint validator
    brew 'yamllint'

    # Images
    brew 'libjpg'
    brew 'libpng'
    brew 'libtiff'

    ###########################################################################
    #
    # TODO
    #
    ###########################################################################

    # TODO
    brew 'autoconf'

    # TODO
    brew 'base64'

    # TODO
    brew 'bind'

    # TODO
    brew 'ctags'

    # TODO
    brew 'dpkg'

    # TODO
    brew 'htop'