Skip to content

Instantly share code, notes, and snippets.

@witt3rd
Forked from jpawlowski/brew-sync.sh
Last active February 25, 2024 12:04
Show Gist options
  • Select an option

  • Save witt3rd/894c9e0b9ca4e24e5574 to your computer and use it in GitHub Desktop.

Select an option

Save witt3rd/894c9e0b9ca4e24e5574 to your computer and use it in GitHub Desktop.

Revisions

  1. witt3rd revised this gist Oct 18, 2015. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions brew-sync.sh
    Original file line number Diff line number Diff line change
    @@ -10,17 +10,20 @@ echo "Reading local settings ..."
    rm -f /tmp/brew-sync.*
    $BREW tap > /tmp/brew-sync.taps
    $BREW list > /tmp/brew-sync.installed
    $BREW cask list -1 > /tmp/brew-sync.casks

    # then combine it with list in Dropbox
    echo "Reading settings from Dropbox ..."
    [ -e ~/Dropbox/Apps/Homebrew/brew-sync.taps ] && cat ~/Dropbox/Apps/Homebrew/brew-sync.taps >> /tmp/brew-sync.taps
    [ -e ~/Dropbox/Apps/Homebrew/brew-sync.installed ] && cat ~/Dropbox/Apps/Homebrew/brew-sync.installed >> /tmp/brew-sync.installed
    [ -e ~/Dropbox/Apps/Homebrew/brew-sync.casks ] && cat ~/Dropbox/Apps/Homebrew/brew-sync.casks >> /tmp/brew-sync.casks

    # make the lists unique and sync into Dropbox
    echo "Syncing to Dropbox ..."
    mkdir -p ~/Dropbox/Apps/Homebrew
    cat /tmp/brew-sync.taps | sort | uniq > ~/Dropbox/Apps/Homebrew/brew-sync.taps
    cat /tmp/brew-sync.installed | sort | uniq > ~/Dropbox/Apps/Homebrew/brew-sync.installed
    cat /tmp/brew-sync.casks | sort | uniq > ~/Dropbox/Apps/Homebrew/brew-sync.casks

    # Set taps
    echo "Enabling taps ..."
    @@ -34,3 +37,9 @@ for PACKAGE in `cat ~/Dropbox/Apps/Homebrew/brew-sync.installed`; do
    $BREW list ${PACKAGE} >/dev/null
    [ "$?" != "0" ] && $BREW install ${PACKAGE}
    done

    echo "Install missing casks ..."
    for CASK in `cat ~/Dropbox/Apps/Homebrew/brew-sync.casks`; do
    $BREW cask list -1 ${CASK} >/dev/null
    [ "$?" != "0" ] && $BREW cask install ${CASK}
    done
  2. Julian Pawlowski revised this gist Mar 26, 2013. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions brew-sync.sh
    Original file line number Diff line number Diff line change
    @@ -25,11 +25,12 @@ cat /tmp/brew-sync.installed | sort | uniq > ~/Dropbox/Apps/Homebrew/brew-sync.i
    # Set taps
    echo "Enabling taps ..."
    for TAP in `cat ~/Dropbox/Apps/Homebrew/brew-sync.taps`; do
    $BREW tap ${TAP} >/dev/null
    $BREW tap ${TAP} >/dev/null
    done

    # Install missing Homebrew packages
    echo "Install missing packages ..."
    for PACKAGE in `cat ~/Dropbox/Apps/Homebrew/brew-sync.installed`; do
    [[ `$BREW list ${PACKAGE} >/dev/null` ]] && $BREW install ${PACKAGE}
    $BREW list ${PACKAGE} >/dev/null
    [ "$?" != "0" ] && $BREW install ${PACKAGE}
    done
  3. Julian Pawlowski created this gist Mar 26, 2013.
    35 changes: 35 additions & 0 deletions brew-sync.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,35 @@
    #!/bin/bash

    # Sync Homebrew installations between Macs via Dropbox
    #

    BREW="/usr/local/bin/brew"

    # first get local settings
    echo "Reading local settings ..."
    rm -f /tmp/brew-sync.*
    $BREW tap > /tmp/brew-sync.taps
    $BREW list > /tmp/brew-sync.installed

    # then combine it with list in Dropbox
    echo "Reading settings from Dropbox ..."
    [ -e ~/Dropbox/Apps/Homebrew/brew-sync.taps ] && cat ~/Dropbox/Apps/Homebrew/brew-sync.taps >> /tmp/brew-sync.taps
    [ -e ~/Dropbox/Apps/Homebrew/brew-sync.installed ] && cat ~/Dropbox/Apps/Homebrew/brew-sync.installed >> /tmp/brew-sync.installed

    # make the lists unique and sync into Dropbox
    echo "Syncing to Dropbox ..."
    mkdir -p ~/Dropbox/Apps/Homebrew
    cat /tmp/brew-sync.taps | sort | uniq > ~/Dropbox/Apps/Homebrew/brew-sync.taps
    cat /tmp/brew-sync.installed | sort | uniq > ~/Dropbox/Apps/Homebrew/brew-sync.installed

    # Set taps
    echo "Enabling taps ..."
    for TAP in `cat ~/Dropbox/Apps/Homebrew/brew-sync.taps`; do
    $BREW tap ${TAP} >/dev/null
    done

    # Install missing Homebrew packages
    echo "Install missing packages ..."
    for PACKAGE in `cat ~/Dropbox/Apps/Homebrew/brew-sync.installed`; do
    [[ `$BREW list ${PACKAGE} >/dev/null` ]] && $BREW install ${PACKAGE}
    done