Get Brew Packages to update, just like you've experienced from Ubuntu

BrewUpdates

Get the number of Brew Packages to update, just like you've experienced from Ubuntu


BrewUpdate is a simple utility written in Go, notify you how many packages to update every time when you execute the terminal.

This project is currently in progress, so the following features cannot work as expected.

The key features are:

  • Fast: Caching the packages to update
    • The execution time of brew update; brew outdated: 7.42 seconds
    • The execution best time of brew-updates (cached): 271.91 millis - approximately 27x faster
  • Easy: Simply downloadable using brew
  • Easy to setup: Just by specifying what shell you use, the setup can be done
  • Friendly: The apt-like notifications from brew

Example

When you open terminal in ubuntu, you can see the following: SSH-connected ubuntu screenshot

When you have installed BrewUpdates, you can see the following: demo

You can do the similar thing with the brew update; brew upgrade command, which takes a few seconds.

With the BrewUpdates, your update history will be recorded locally so you don't have to wait for a few seconds to get result.


Installation

I have plan to upload this project to the brew, so that you can download easily.

However, still I got some works to do, so currently it's not supported to install automatically using brew.

The other option you can use right now, is to build it.

FYI, after you build and got the binary, you can add the path of your binary into your shell configs like .bashrc

Therefore, add the execution command of brew-updates like:

...
./Users/yeongyu/workspaces/brew-updates/src

Build

Follow the below instructions sequentially. Let's start with the installing brew and go. You can skip installing it if you already have it.

Install brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install go

brew install go

Clone this repository

git clone [email protected]:code-yeongyu/brew-updates.git

Install dependencies

cd src/
go mod tidy

Compile

go build .

Run!

./brew-updates

Similar Resources

This repository contains utility functions that do not make sense in other packages.

Installation go get github.com/IQ-tech/go-utils Executing code before process exits AtInterruption receives a function that will be called once befor

Dec 9, 2021

Code generator to produce CLI from R packages

cmd Create command line applications from R packages. How it works It's a code generator that outputs Go code which produces a Command Line Applicatio

Apr 30, 2022

Gopkg - Search go.dev packages by keyword

gopkg Search go.dev packages by keyword Usage Install go install github.com/luck

Apr 6, 2022

Argparse for golang. Just because `flag` sucks

Golang argparse Let's be honest -- Go's standard command line arguments parser flag terribly sucks. It cannot come anywhere close to the Python's argp

Dec 28, 2022

An implementation of sed in Go. Just because!

Sed-Go An implementation of sed in Go. Just because! Status Command-Line processing: Done. It accepts '-e', '-f', '-n' and long versions of the same.

Aug 23, 2022

Just a simple CLI tool to group dependabot PRs by dependency and merge them.

Just a simple CLI tool to group dependabot PRs by dependency and merge them.

Dependabotbot Have you been the victim of a lodash update? Has your notification page in Github been assaulted by needing to update a patch version of

Jun 30, 2022

react, fiber, api just for saying hello

say-hello Introduction Sometimes we need to have a frontend besides the backend. This repository uses React to show how we can server a React build an

Nov 9, 2022

Golisp-wtf - A lisp interpreter (still just a parser) implementation in golang. You may yell "What the fuck!?.." when you see the shitty code.

R6RS Scheme Lisp dialect interpreter This is an implementation of a subset of R6RS Scheme Lisp dialect in golang. The work is still in progress. At th

Jan 7, 2022

Count once - Just once? no, when appear many it run once, but it can run many times

countOnce just once? no, when appear many it run once, but it can run many times

Jan 29, 2022
Comments
  • Fix crashes on first execution

    Fix crashes on first execution

    The caching directory(~/.local/share/brew_updates/updatable_packages_log.json) is not available on first execution. By using os.MkdirAll(), resolve this issue.

  • Refactor caching system and caches brew outdated output for two days

    Refactor caching system and caches brew outdated output for two days

    • Remove shell_history based caching
    • Add UpdatableListManager
    • Rename GetUpgradablePackages
    • Update brew manager to use UpdatableListManager

    Now the cached data saves in a JSON format along with the timestamp, and now timestamp based caching strategy replaces the shell_history based caching. The current expiry of cache is one day.

  • support linuxbrew

    support linuxbrew

    panic: Only macOS is supported.
    
    goroutine 1 [running]:
    main.checkExecutable({})
            /home/mrchypark/Documents/projects/brew-updates/src/main.go:11 +0x27
    main.main()
            /home/mrchypark/Documents/projects/brew-updates/src/main.go:25 +0x1d
    Registering  to your shell config ...
    Done!
    You can now easily check your upgradable packages using 'brew-updates'
    

    I use ubuntu 20.21 on wsl2.

I like reading news but I also like the terminal. I am leaning and practicing my go.
I like reading news but I also like the terminal. I am leaning and practicing my go.

I made an api and didn't know how to use it. Screenshots The initial screen when you first run the app. The screen after you specify an id. This app u

Jan 14, 2022
Query, update and convert data structures from the command line. Comparable to jq/yq but supports JSON, TOML, YAML, XML and CSV with zero runtime dependencies.
Query, update and convert data structures from the command line. Comparable to jq/yq but supports JSON, TOML, YAML, XML and CSV with zero runtime dependencies.

dasel Dasel (short for data-selector) allows you to query and modify data structures using selector strings. Comparable to jq / yq, but supports JSON,

Jan 2, 2023
CLI for SendGrid, which helps in managing SSO users, can install and update users from yaml config

Sendgrid API This script is needed to add new users to SendGrid as SSO teammates. Previously, all users were manually added and manually migrating the

Jul 20, 2022
CLI tool to update ~/.aws/config with all accounts and permission sets defined in AWS SSO

aws-sso-profiles Generate or update ~/.aws/config with a profile for each SSO account you have access to, by using an existing AWS SSO session. Bootst

Nov 3, 2022
Golang daemon to update i3 workspace icons

i3-icons-daemon Is a lightweight golang daemon service that updates your i3 workspace based on the programs that are running in your workspace's windo

Jul 29, 2022
A simple CLI app to update dynamic DNS settings for your CloudFlare account

Cloudflare Dynamic DNS Updater (Go) written by Darren Rambaud Why? A simple CLI app to update dynamic DNS settings for your CloudFlare account. Useful

Nov 28, 2021
Service for read & update MAC OUI list

manufacturer-parser Service written on Golang to get actual MAC OUI list from here and store to MongoDB. Needed for dealt with actual list in Wimark O

Dec 29, 2021
Newyearify - Update the copyright year in all of your GitHub repos

new_yearify Update the copyright year in all of your GitHub repositories. How do

Feb 6, 2022
GitHub CLI extension to clone (or update) all repositories in an Organization, with the ability to filter via search queries.

gh-org-repo-sync GitHub CLI extension to clone all repositories in an Organization, with the ability to filter via search queries. If a local clone al

Nov 2, 2022
:mag: Search the Go packages via command-line

GoSearch Search the Go packages for pkg.go.dev via command-line. It supports all search options in Search Help. Installation go get github.com/mingram

Jun 23, 2022