├── ACKNOWLEDGMENTS.md ├── CHANGELOG.md ├── LICENSE ├── README.md ├── build └── Chug.app │ └── Contents │ ├── Info.plist │ ├── MacOS │ └── Chug │ └── Resources │ ├── AppSettings.plist │ ├── Credits.html │ ├── MainMenu.nib │ ├── appIcon.icns │ └── script ├── dmg-builder.sh ├── docs └── Credits.html ├── img ├── chug-click.gif ├── chug-header.png ├── chug-header.psd ├── chug-install-example.png ├── chug-install.gif ├── chug-quiet.gif ├── chug-text-settings.png ├── chug-verbose.gif ├── chug.png ├── chug@2x.png ├── chug@3x.png ├── dmg-installer-bg.png └── platypus.png ├── installer ├── Chug-Installer-checksum.txt └── Chug-Installer.dmg ├── profile └── Chug.platypus └── src └── chug.sh /ACKNOWLEDGMENTS.md: -------------------------------------------------------------------------------- 1 | ### Thanks! 2 | 3 | The Chug beer label logo is a modification of the fantastic free vector chalk beer badges on Vecteezy. The upstream artwork was released and is used under a permissive use and modification with attribution license. The original images can be found [here](http://www.vecteezy.com/vector-art/82086-free-vector-chalk-beer-badges). 4 | 5 | [Homebrew](http://brew.sh/) rocks. If you are not using it for package management on OS X, you should be. Like right now. 6 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## Changelog 2 | 3 | ### v0.10.0 4 | 5 | - removed deprecated `--all` option from brew upgrade command 6 | - minor script updates 7 | - script documentation updates 8 | 9 | ### v0.9.3 10 | 11 | - Chug window now remembers size and position between launches 12 | - Fixes incorrect window behavior during progress bar display 13 | - added new .dmg installer 14 | 15 | ### v0.9.2 16 | 17 | - added extensive annotations to shell script source to support simple user modifications 18 | 19 | ### v0.9.1 20 | 21 | - added Homebrew executable path check 22 | - modified the status messages during task progress so that task step is indicated in the UI 23 | - updated user error alert messages to make them more informative 24 | 25 | ### v0.9.0 26 | 27 | - initial release 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018 Christopher Simpkins 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Chug 2 | 3 | Chug - cool, refreshing, and no aftertaste 4 | 5 | ## What is Chug? 6 | 7 | Progress bar displays Chug progress 8 | 9 | Chug is a macOS application that turns your routine installed [Homebrew](http://brew.sh/) package upgrades and outdated package cleanup into a simple desktop icon click workflow. 10 | 11 | The tool will perform the following actions through Homebrew without the need for a terminal or manual/scripted/aliased command execution on the command line: 12 | 13 | - Update the Homebrew formulae 14 | - Examine your system for outdated packages 15 | - Upgrade all outdated packages 16 | - Remove all outdated packages following successful upgrades 17 | 18 | 19 | ## Quickstart 20 | 21 | - [Download the Chug installer](https://github.com/chrissimpkins/chug/releases/download/v0.10.0/Chug-Installer.dmg) 22 | - Double click the installer icon 23 | - Drag and drop the icon onto the Application directory in the installer window 24 | - Prost! 25 | 26 | ## System Requirements 27 | 28 | macOS 10.7 or later and support for 64-bit Intel binaries 29 | 30 | The Homebrew executable must be installed on the path `/usr/local/bin/brew` (as [recommended by the Homebrew developers](https://github.com/Homebrew/brew/blob/master/docs/FAQ.md#why-does-homebrew-prefer-i-install-to-usrlocal)) to use the default Chug build. 31 | 32 | Use the following command to confirm that the Homebrew executable is installed on the correct path: 33 | 34 | ``` 35 | $ which brew 36 | ``` 37 | 38 | If the output from the above command is not `/usr/local/bin/brew`, please see the [Homebrew documentation](http://brew.sh/) for details on how to modify your install path in order to use Chug with Homebrew. 39 | 40 | 41 | ## Install 42 | 43 | [Download the Chug installer](https://github.com/chrissimpkins/chug/releases/download/v0.10.0/Chug-Installer.dmg), double click on the installer file, and then drag and drop the Chug application icon onto the Applications directory in the installer window. 44 | 45 | Chug drag and drop install 46 | 47 | You can access Chug via Launchpad and pin the icon to your dock for easy access. 48 | 49 | ## Usage 50 | 51 | Click that handsome beer label icon to start chugging... 52 | 53 | Sit back and relax. The entire process is automated from there. 54 | 55 | ### Package Updates 56 | 57 | By default, your package updates and cleanup are indicated with a progress bar and status update text. 58 | 59 | Progress bar displays Chug progress 60 | 61 | Click the Details dropdown to view the standard output text from Homebrew as the updates and cleanup take place (or afterwards to review a log of your updates). 62 | 63 | Verbose output with the Details dropdown 64 | 65 | Click the Quit button to close the update progress indicator window and exit Chug. 66 | 67 | ## Issues 68 | 69 | If Chug isn't cool, refreshing, with no aftertaste, please [submit a new issue report](https://github.com/chrissimpkins/chug/issues/new) on the Github repository issue tracker. 70 | 71 | 72 | ## License 73 | 74 | Chug is licensed under the MIT license. The full text of the license is [here](https://github.com/chrissimpkins/chug/blob/master/LICENSE). 75 | 76 | -------------------------------------------------------------------------------- /build/Chug.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | Chug 9 | CFBundleIconFile 10 | appIcon.icns 11 | CFBundleIdentifier 12 | com.csimpkins.Chug 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | Chug 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 0.10.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 0.10.0 25 | LSMinimumSystemVersion 26 | 10.7.0 27 | LSUIElement 28 | 29 | NSAppTransportSecurity 30 | 31 | NSAllowsArbitraryLoads 32 | 33 | 34 | NSHumanReadableCopyright 35 | © 2018 Christopher Simpkins 36 | NSMainNibFile 37 | MainMenu 38 | NSPrincipalClass 39 | NSApplication 40 | 41 | 42 | -------------------------------------------------------------------------------- /build/Chug.app/Contents/MacOS/Chug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/build/Chug.app/Contents/MacOS/Chug -------------------------------------------------------------------------------- /build/Chug.app/Contents/Resources/AppSettings.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AcceptsFiles 6 | 7 | AcceptsText 8 | 9 | Authentication 10 | 11 | Creator 12 | Platypus-5.2 13 | Droppable 14 | 15 | InterfaceType 16 | Progress Bar 17 | InterpreterArgs 18 | 19 | InterpreterPath 20 | /bin/sh 21 | PromptForFileOnLaunch 22 | 23 | RemainRunning 24 | 25 | ScriptArgs 26 | 27 | Suffixes 28 | 29 | * 30 | 31 | TextBackground 32 | #ffffff 33 | TextFont 34 | Monaco 35 | TextForeground 36 | #000000 37 | TextSize 38 | 11 39 | URISchemes 40 | 41 | UniformTypes 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /build/Chug.app/Contents/Resources/Credits.html: -------------------------------------------------------------------------------- 1 |
2 |

Chug is a clickable Homebrew package updater and outdated package cleaner for macOS. 3 |

8 |

9 |
10 | -------------------------------------------------------------------------------- /build/Chug.app/Contents/Resources/MainMenu.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/build/Chug.app/Contents/Resources/MainMenu.nib -------------------------------------------------------------------------------- /build/Chug.app/Contents/Resources/appIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/build/Chug.app/Contents/Resources/appIcon.icns -------------------------------------------------------------------------------- /build/Chug.app/Contents/Resources/script: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # ////////////////////////////////////////////////////////////////// 4 | # chug.sh 5 | # Simple, clickable Homebrew package management for macOS 6 | # Copyright 2018 Christopher Simpkins 7 | # MIT License 8 | # ////////////////////////////////////////////////////////////////// 9 | 10 | echo "Chugging..." 11 | 12 | #################################################################### 13 | # The Homebrew executable path. 14 | # - automatically detected at runtime 15 | #################################################################### 16 | CHUG_BREW_PATH="/usr/local/bin/brew" 17 | 18 | 19 | #################################################################### 20 | # Test for correct Homebrew executable path 21 | # - increments progress bar to 25% via Platypus echo syntax 22 | # - provides alert if test failed via Platypus echo syntax 23 | # - exits with exit status code 1 for failures 24 | #################################################################### 25 | 26 | # test for file on the expected Homebrew executable path 27 | if [ -f "$CHUG_BREW_PATH" ]; then 28 | # increment progress bar using Platypus echo syntax 29 | echo "PROGRESS:25" 30 | else 31 | # alert for failures using Platypus echo syntax 32 | echo "${CHUG_BREW_PATH}" 33 | echo " " 34 | echo "ALERT:Chug|There was an error with the Homebrew path. Please see the log under the Details dropdown for additional information." 35 | echo "[X] ERROR: Chug was unable to identify the Homebrew executable 'brew'. This is a requirement for execution." 36 | echo " " 37 | echo "Please review the Homebrew documentation (http://brew.sh/) for additional details about how to install the brew executable on your macOS system." 38 | exit 1 39 | fi 40 | 41 | ##################################################################### 42 | # Update Homebrew packages 43 | # - updates status 44 | # - calls Homebrew executable with command `brew update` 45 | # - checks exit status code and either alerts for failure or 46 | # increments progress bar for success 47 | # - exits with exit status code 1 for failures 48 | ##################################################################### 49 | echo " " 50 | echo "[1] Updating Homebrew packages..." 51 | 52 | # call Homebrew executable 53 | ${CHUG_BREW_PATH} update 54 | 55 | # test exit status code 56 | if (( $? )); then 57 | # alert for failures using Platypus echo syntax 58 | echo " " 59 | echo "ALERT:Chug|There was an error with the Homebrew package updates. Please see the log under the Details dropdown for additional information." 60 | exit 1 61 | else 62 | # increment progress bar with Platypus echo syntax 63 | echo "PROGRESS:50" 64 | fi 65 | 66 | ##################################################################### 67 | # Upgrade all installed Homebrew packages to current releases 68 | # - calls Homebrew executable with command `brew upgrade` 69 | # - checks exit status code and either alerts for failure or 70 | # increments progress bar for success 71 | ##################################################################### 72 | 73 | echo " " 74 | echo "[2] Looking for outdated Homebrew packages..." 75 | 76 | # call Homebrew executable 77 | ${CHUG_BREW_PATH} upgrade 78 | 79 | # test exit status code 80 | if (( $? )); then 81 | # alert for failures using Platypus echo syntax 82 | echo " " 83 | echo "ALERT:Chug|There was an error with the Homebrew package upgrades. Please see the log under the Details dropdown for additional information." 84 | exit 1 85 | else 86 | # increment progress bar with Platypus echo syntax 87 | echo "PROGRESS:75" 88 | fi 89 | 90 | #################################################################### 91 | # Cleanup outdated Homebrew packages after the upgrades 92 | # - calls Homebrew executable with command `brew cleanup` 93 | # - checks exit status code and either alerts for failure or 94 | # increments progress bar to completion (100%) for success 95 | # - exits with exit status code 1 for failures 96 | #################################################################### 97 | 98 | echo " " 99 | echo "[3] Cleaning up outdated Homebrew packages..." 100 | 101 | # call Homebrew executable 102 | ${CHUG_BREW_PATH} cleanup 103 | 104 | # test exit status code 105 | if (( $? )); then 106 | # alert for failures using Platypus echo syntax 107 | echo " " 108 | echo "ALERT:Chug|There was an error with the Homebrew package cleanup following the package upgrades. Please see the log under the Details dropdown for additional information." 109 | exit 1 110 | else 111 | # increment progress bar to completion using Platypus echo syntax 112 | echo "PROGRESS:100" 113 | fi 114 | 115 | # Final standard output messages to indicate completion of the expected tasks 116 | echo " " 117 | echo "Chug complete." 118 | -------------------------------------------------------------------------------- /dmg-builder.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /Users/ces/Desktop/extcode/create-dmg/create-dmg \ 4 | --volname "Chug Installer" \ 5 | --volicon "/Users/ces/Library/Application Support/Platypus/PlatypusIcon-2369378.icns" \ 6 | --background "img/dmg-installer-bg.png" \ 7 | --window-pos 200 120 \ 8 | --window-size 800 400 \ 9 | --icon-size 100 \ 10 | --icon Chug.app 200 190 \ 11 | --hide-extension Chug.app \ 12 | --app-drop-link 600 185 \ 13 | installer/Chug-Installer.dmg \ 14 | /Users/ces/Desktop/code/chug/build 15 | -------------------------------------------------------------------------------- /docs/Credits.html: -------------------------------------------------------------------------------- 1 |
2 |

Chug is a clickable Homebrew package updater and outdated package cleaner for macOS. 3 |

8 |

9 |
10 | -------------------------------------------------------------------------------- /img/chug-click.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-click.gif -------------------------------------------------------------------------------- /img/chug-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-header.png -------------------------------------------------------------------------------- /img/chug-header.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-header.psd -------------------------------------------------------------------------------- /img/chug-install-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-install-example.png -------------------------------------------------------------------------------- /img/chug-install.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-install.gif -------------------------------------------------------------------------------- /img/chug-quiet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-quiet.gif -------------------------------------------------------------------------------- /img/chug-text-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-text-settings.png -------------------------------------------------------------------------------- /img/chug-verbose.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug-verbose.gif -------------------------------------------------------------------------------- /img/chug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug.png -------------------------------------------------------------------------------- /img/chug@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug@2x.png -------------------------------------------------------------------------------- /img/chug@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/chug@3x.png -------------------------------------------------------------------------------- /img/dmg-installer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/dmg-installer-bg.png -------------------------------------------------------------------------------- /img/platypus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/img/platypus.png -------------------------------------------------------------------------------- /installer/Chug-Installer-checksum.txt: -------------------------------------------------------------------------------- 1 | 11a8a896d9862c5b6d3e1c41c51bf3c043f5e902 Chug-Installer.dmg 2 | -------------------------------------------------------------------------------- /installer/Chug-Installer.dmg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrissimpkins/chug/39564db020014c9b980531888cf5ae424761701b/installer/Chug-Installer.dmg -------------------------------------------------------------------------------- /profile/Chug.platypus: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AcceptsFiles 6 | 7 | AcceptsText 8 | 9 | Authentication 10 | 11 | Author 12 | Christopher Simpkins 13 | BundledFiles 14 | 15 | /Users/ces/Desktop/code/chug/docs/Credits.html 16 | 17 | Creator 18 | Platypus-5.2 19 | DeclareService 20 | 21 | Destination 22 | /Users/ces/Desktop/Application.app 23 | DevelopmentVersion 24 | 25 | DocIconPath 26 | 27 | Droppable 28 | 29 | ExecutablePath 30 | /usr/local/share/platypus/ScriptExec 31 | IconPath 32 | /Users/ces/Library/Application Support/Platypus/PlatypusIcon-2369378.icns 33 | Identifier 34 | com.csimpkins.Chug 35 | InterfaceType 36 | Progress Bar 37 | InterpreterArgs 38 | 39 | InterpreterPath 40 | /bin/sh 41 | Name 42 | Chug 43 | NibPath 44 | /usr/local/share/platypus/MainMenu.nib 45 | OptimizeApplication 46 | 47 | Overwrite 48 | 49 | PromptForFileOnLaunch 50 | 51 | RemainRunning 52 | 53 | RunInBackground 54 | 55 | ScriptArgs 56 | 57 | ScriptPath 58 | /Users/ces/Desktop/code/chug/src/chug.sh 59 | StatusItemDisplayType 60 | Text 61 | StatusItemIcon 62 | 63 | TU0AKgAAFEj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//// 64 | AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// 65 | /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAA 66 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAACuAAAAAAAAAAAAAAAA 67 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 68 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 69 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAogAAAP8AAADOAAAAAAAAAAAAAAAAAAAAAQAAABAA 70 | AAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 71 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 72 | UgAAAB8AAAA5AAAA/wAAAN8AAAAAAAAAPgAAAKcAAADNAAAAzgMBAMUCAADJAAAAzwAA 73 | ALoAAABrAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 74 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAACAAAA/wAAAMEAAACV 75 | AAAA/wAAAK8AAAC0AgEA+B0EAsQ4BAN1OgQCQBoLCCcZBQQ1JAgEYicFAqgNAwHrAAAA 76 | 9gAAAIYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 77 | AAAAAAAAAAAAAAAAAAAAAADmAAAA0AAAAEAAAAAAAAAA8AAAAP8AAADhAAAA/wAAAP8j 78 | DAWvPAsFIE0HAwBgBQUATAMCABkNCgAaBAUANQsGAFIKBQBJDQYAPwoEcA8EAP0AAADc 79 | AAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 80 | AAAAAAAAAABgAAAA/wAAAP8AAACkAAAA1AAAAO4AAAD/CQMA40IZCDxVIA0ANAADADoB 81 | AgBFCAQAPQcDAB8JBQAbBwMALAoFAEIFAQBKCwUAexAHAFsaDAUQBgTSAAAA/wAAANsA 82 | AABKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 83 | 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 151 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAABJAAAAXQAAAGsAAACFAAAA 152 | uxADAeRLEgZdNgkAnwAAAP8CAgXTAQIC9lYdHDlKHx4ABwQEXAwBAu4AAAL/AAAAfAAA 153 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 154 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkzEw10 155 | lCsbAAwAAIgAAAD/AgEE8gAAAtEMCAqcAAAB9QAAAf8AAAD/AAAAJwAAAAAAAAAAAAAA 156 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 157 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuFREAjDAjAEMtGQAb 158 | GxBsAAAA/wAABt8DBgzXAAAA/wAAAN0AAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 159 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 160 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuEw8AhywfAEs3IABBPCUAGRQNOAsJ 161 | Bb0HAgLQLyILkEo+HQgAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ 162 | //8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A 163 | ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//// 164 | AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAADgEAAAMAAAAB 165 | ACQAAAEBAAMAAAABACQAAAECAAMAAAAEAAAU9gEDAAMAAAABAAEAAAEGAAMAAAABAAIA 166 | AAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABACQAAAEX 167 | AAQAAAABAAAUQAEcAAMAAAABAAEAAAFSAAMAAAABAAIAAAFTAAMAAAAEAAAU/odzAAcA 168 | AAxIAAAVBgAAAAAACAAIAAgACAABAAEAAQABAAAMSExpbm8CEAAAbW50clJHQiBYWVog 169 | B84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEA 170 | AAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 171 | AAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQA 172 | AAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABw 173 | ZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVh 174 | cwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAA 175 | BDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENv 176 | bXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JH 177 | QiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 178 | AAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAA 179 | AABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAA 180 | ACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAA 181 | AAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 182 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZh 183 | dWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIu 184 | MSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAA 185 | AAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2 186 | MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g 187 | SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4A 188 | FF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAA 189 | AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAE 190 | AAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3 191 | AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA 192 | +wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGh 193 | AakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoC 194 | hAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOW 195 | A6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE 196 | 8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7 197 | BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYI 198 | WghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApq 199 | CoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM 200 | 2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96 201 | D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQS 202 | hBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9 203 | FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZ 204 | axmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1H 205 | HXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUh 206 | oSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYn 207 | Jlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIr 208 | NitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBs 209 | MKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02 210 | NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76Dwn 211 | PGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJC 212 | tUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUlj 213 | SalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQ 214 | u1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4Fgv 215 | WH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVg 216 | V2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iW 217 | aOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpx 218 | lXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6Rnql 219 | ewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2E 220 | gITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45m 221 | js6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZ 222 | JJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPm 223 | pFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxav 224 | i7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsu 225 | u6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HH 226 | v8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ 227 | 1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UTh 228 | zOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A 229 | 78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9 230 | uv5L/tz/bf// 231 | 232 | StatusItemIconIsTemplate 233 | 234 | StatusItemTitle 235 | Title 236 | StatusItemUseSystemFont 237 | 238 | Suffixes 239 | 240 | * 241 | 242 | TextBackground 243 | #ffffff 244 | TextFont 245 | Monaco 246 | TextForeground 247 | #000000 248 | TextSize 249 | 11 250 | URISchemes 251 | 252 | UniformTypes 253 | 254 | UseXMLPlistFormat 255 | 256 | Version 257 | 0.10.0 258 | 259 | 260 | -------------------------------------------------------------------------------- /src/chug.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # ////////////////////////////////////////////////////////////////// 4 | # chug.sh 5 | # Simple, clickable Homebrew package management for macOS 6 | # Copyright 2018 Christopher Simpkins 7 | # MIT License 8 | # ////////////////////////////////////////////////////////////////// 9 | 10 | echo "Chugging..." 11 | 12 | #################################################################### 13 | # The Homebrew executable path. 14 | # - automatically detected at runtime 15 | #################################################################### 16 | CHUG_BREW_PATH="/usr/local/bin/brew" 17 | 18 | 19 | #################################################################### 20 | # Test for correct Homebrew executable path 21 | # - increments progress bar to 25% via Platypus echo syntax 22 | # - provides alert if test failed via Platypus echo syntax 23 | # - exits with exit status code 1 for failures 24 | #################################################################### 25 | 26 | # test for file on the expected Homebrew executable path 27 | if [ -f "$CHUG_BREW_PATH" ]; then 28 | # increment progress bar using Platypus echo syntax 29 | echo "PROGRESS:25" 30 | else 31 | # alert for failures using Platypus echo syntax 32 | echo "${CHUG_BREW_PATH}" 33 | echo " " 34 | echo "ALERT:Chug|There was an error with the Homebrew path. Please see the log under the Details dropdown for additional information." 35 | echo "[X] ERROR: Chug was unable to identify the Homebrew executable 'brew'. This is a requirement for execution." 36 | echo " " 37 | echo "Please review the Homebrew documentation (http://brew.sh/) for additional details about how to install the brew executable on your macOS system." 38 | exit 1 39 | fi 40 | 41 | ##################################################################### 42 | # Update Homebrew packages 43 | # - updates status 44 | # - calls Homebrew executable with command `brew update` 45 | # - checks exit status code and either alerts for failure or 46 | # increments progress bar for success 47 | # - exits with exit status code 1 for failures 48 | ##################################################################### 49 | echo " " 50 | echo "[1] Updating Homebrew packages..." 51 | 52 | # call Homebrew executable 53 | ${CHUG_BREW_PATH} update 54 | 55 | # test exit status code 56 | if (( $? )); then 57 | # alert for failures using Platypus echo syntax 58 | echo " " 59 | echo "ALERT:Chug|There was an error with the Homebrew package updates. Please see the log under the Details dropdown for additional information." 60 | exit 1 61 | else 62 | # increment progress bar with Platypus echo syntax 63 | echo "PROGRESS:50" 64 | fi 65 | 66 | ##################################################################### 67 | # Upgrade all installed Homebrew packages to current releases 68 | # - calls Homebrew executable with command `brew upgrade` 69 | # - checks exit status code and either alerts for failure or 70 | # increments progress bar for success 71 | ##################################################################### 72 | 73 | echo " " 74 | echo "[2] Looking for outdated Homebrew packages..." 75 | 76 | # call Homebrew executable 77 | ${CHUG_BREW_PATH} upgrade 78 | 79 | # test exit status code 80 | if (( $? )); then 81 | # alert for failures using Platypus echo syntax 82 | echo " " 83 | echo "ALERT:Chug|There was an error with the Homebrew package upgrades. Please see the log under the Details dropdown for additional information." 84 | exit 1 85 | else 86 | # increment progress bar with Platypus echo syntax 87 | echo "PROGRESS:75" 88 | fi 89 | 90 | #################################################################### 91 | # Cleanup outdated Homebrew packages after the upgrades 92 | # - calls Homebrew executable with command `brew cleanup` 93 | # - checks exit status code and either alerts for failure or 94 | # increments progress bar to completion (100%) for success 95 | # - exits with exit status code 1 for failures 96 | #################################################################### 97 | 98 | echo " " 99 | echo "[3] Cleaning up outdated Homebrew packages..." 100 | 101 | # call Homebrew executable 102 | ${CHUG_BREW_PATH} cleanup 103 | 104 | # test exit status code 105 | if (( $? )); then 106 | # alert for failures using Platypus echo syntax 107 | echo " " 108 | echo "ALERT:Chug|There was an error with the Homebrew package cleanup following the package upgrades. Please see the log under the Details dropdown for additional information." 109 | exit 1 110 | else 111 | # increment progress bar to completion using Platypus echo syntax 112 | echo "PROGRESS:100" 113 | fi 114 | 115 | # Final standard output messages to indicate completion of the expected tasks 116 | echo " " 117 | echo "Chug complete." 118 | --------------------------------------------------------------------------------