You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The easiest way to do this without moving away from Platypus would be to add a new menubar item that downloads the most recent version and replaces the app while keeping settings.py intact.
Rough pseudocode:
# Check if more recent version is available
curl https://github.com/pirate/security-growler/raw/master/Security%20Growler.app.zip >"/Applications/New-Security Growler.app"# OR
curl https://github.com/pirate/security-growler/raw/master/Security%20Growler%20Light.app.zip >"/Applications/New-Security Growler Light.app"
cp "/Applications/Security Growler*.app/Contents/Resources/settings.py""/Applications/New-Security Growler*.app/Contents/Resources/settings.py"
mv "/Applications/Security Growler*.app"~/.Trash/
mv "/Applications/New-Security Growler*.app">"/Applications/Security Growler.app"
open "/Applications/Security Growler.app"exit 0
a hack around this is my homebrew-cask package brew cask install homebrew-cask
I would avoid things like sparkle or autoupdating; warnings are great, but I don't want a security application updating without my explicit permission.
@BenjaminHCCarr really? I usually prefer my security application auto-update, so that I get security patches fast (noisily of course, I don't want them doing it silently in the background). I was thinking sparkle, with auto-updating turned off by default could be a good compromise.
FYI as a temporary helper, v2.3 has a new menu item called "Check for updates", which just takes you to the releases page so you can manually see if a new version is available. It's not a full solution since it's manual, but it makes it easier for now.
@claude can you implement simple auto-update checking?
just fetch the latest version of the script from github.com raw, and sha256 hash it and compare against the hash of the running script on disk. if the version on github is different, assume a new version is available, show an alert with a direct link to download the new script version from github.
Activity
pirate commentedon Apr 28, 2016
The easiest way to do this without moving away from Platypus would be to add a new menubar item that downloads the most recent version and replaces the app while keeping
settings.pyintact.Rough pseudocode:
BenjaminHCCarr commentedon Nov 9, 2016
a hack around this is my homebrew-cask package
brew cask install homebrew-caskI would avoid things like sparkle or autoupdating; warnings are great, but I don't want a security application updating without my explicit permission.
pirate commentedon Nov 9, 2016
@BenjaminHCCarr really? I usually prefer my security application auto-update, so that I get security patches fast (noisily of course, I don't want them doing it silently in the background). I was thinking sparkle, with auto-updating turned off by default could be a good compromise.
pirate commentedon Dec 19, 2016
FYI as a temporary helper, v2.3 has a new menu item called "Check for updates", which just takes you to the releases page so you can manually see if a new version is available. It's not a full solution since it's manual, but it makes it easier for now.

pirate commentedon Dec 3, 2025
@claude can you implement simple auto-update checking?
just fetch the latest version of the script from github.com raw, and sha256 hash it and compare against the hash of the running script on disk. if the version on github is different, assume a new version is available, show an alert with a direct link to download the new script version from github.
claude commentedon Dec 3, 2025
Claude finished @pirate's task —— View job •
claude/issue-21-20251203-2127• Create PR ➔Auto-update checking implementation complete
Todo List
Implementation Details
Added auto-update checking functionality to
security-growler.30s.py:Features implemented:
compute_file_sha256()- Computes SHA256 hash of the local script filefetch_remote_script_hash()- Fetches the latest version from GitHub raw and computes its hashcheck_for_updates()- Compares local vs remote hashes and generates alert if differentHow it works:
Integration:
collect_all_events()function alongside other monitorsChanges Made
hashlibimport for SHA256 hashing--- |
Add automatic update checking with SHA256 hash comparison