├── 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 |
4 |
5 | ## What is Chug?
6 |
7 |
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 |
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 |
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 |
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 |
--------------------------------------------------------------------------------