Giter Site home page Giter Site logo

brewup's Introduction

PyPI version PyPI - Python Version Automated Tests codecov

brewup

A CLI that automates upgrading Homebrew and all installed packages. Brewup runs the following routines in order to keep your system up to date with the latest versions of all installed formulae and casks.

  1. brew update
  2. Upgrades installed packages based on many configuration settings
  3. brew autoremove
  4. brew cleanup

The settings allow for a variety of options including:

  • Excluding specific formulae/casks from being upgraded
  • Running brew upgrade with the --greedy flag
  • Opening casks after upgrading with open -a {cask}
  • Removing specific casks from MacOS quarantine
  • Select which available formulae/casks to upgrade

Installation

It is recommended to use PIPX to install this package.

pipx install brewup

If pipx is not an option, you can install Brewup in your Python user directory.

python -m pip install --user brewup

Note: brewup requires Python >= v3.10.

Usage

Upgrade available formulae/casks:

brewup

Include formulae and casks that are excluded in the configuration file:

brewup --all

Select which formulae/casks to upgrade:

brewup --select

See all available upgrades but don't upgrade anything:

brewup --list

Only formulae/casks that are excluded in the configuration file:

brewup --excluded

Configuration

On first run, an empty configuration file will be created at ~/Library/Application Support/brewup/config.toml. This file can be edited to customize the behavior of brewup.

# Configuration for brewup

# Target location for Applications, mimics --appdir. If empty, uses default
# app_dir = ""

# List of packages to exclude from updates
exclude_updades = []

# Update all casks, even if they auto-update
greedy_casks = false

# Full path to `brew` if not in $PATH
# homebrew_command = ""

# List of casks to open after updating
no_quarantine = []

Contributing

Setup: Once per project

  1. Install Python 3.10 and Poetry
  2. Clone this repository. git clone https://github.com/natelandau/brewup
  3. Install the Poetry environment with poetry install.
  4. Activate your Poetry environment with poetry shell.
  5. Install the pre-commit hooks with pre-commit install --install-hooks.

Developing

  • This project follows the Conventional Commits standard to automate Semantic Versioning and Keep A Changelog with Commitizen.
    • When you're ready to commit changes run cz c
  • Run poe from within the development environment to print a list of Poe the Poet tasks available to run on this project. Common commands:
    • poe lint runs all linters
    • poe test runs all tests with Pytest
  • Run poetry add {package} from within the development environment to install a run time dependency and add it to pyproject.toml and poetry.lock.
  • Run poetry remove {package} from within the development environment to uninstall a run time dependency and remove it from pyproject.toml and poetry.lock.
  • Run poetry update from within the development environment to upgrade all dependencies to the latest versions allowed by pyproject.toml.

brewup's People

Contributors

natelandau avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.