05.03.2020

Updates To My 'install All Firefox Bash Script For Mac

Well, that's cool. Didn't know there was a built in version check. You could get the same with a 'defaults read /Applications/Firefox.app/Contents/Info CFBundleVersion' But neither of those really help with determining if the version you have installed is out of date. Of course, Firefox does do some kind of version check when it launches. Hence if you have an out of date version and fire it up you'll get a page telling you the version you have is old and should be updated. So its checking against something, but not sure what.

Maybe install Little Snitch on a Mac with an old version of FF, connect it to the internet and open the app, See what Little Snitch reports. Perhaps its a URL you can do some checking against, but I'm not so sure. The only other thing would be to do a curl on this address - and look for the version string in there with grep/awk, etc -Its in several places- and then use that to compare it against what the installed app is reporting. But that would be a fragile solution since if Mozilla revamps or renames their page the script could and would likely break. Yeah, So the automation solution I was hinting at would be ridiculous to set up.

Parsing the version and then curl-ing the mozilla project site and then automating the download and upgrade. I've seen things like this before.

Which is why I brought up the download, repackage, and test. That way also all your imaging work flows can be updated with the new package, so in a break/fix scenario when you have to reimage your image work flow has the newest approved and tested Firefox package. Technically, you can just toss the Firefox app itself into Casper Admin (with out packaging it in Composer) and then override policy defaults and specify the path /Applications and it will drop just the app itself into scoped computer's Applications folder.

However, permissions will not be set properly and of course it isn't tested for your environment. Like I mentioned before, this is just my opinion, and there are other ways to do things and other opinions which are probably better than mine, but automating app updates is just not a good idea.

I've seen app updates break things. That is why I always as a practice downloaded the new version, packaged it, tested it and then deployed it. Even with that process, I'd sometimes run into bugs down the road that I never tested. Like a new version of Firefox connecting to a specific online assessment testing site that only works with an older version of Firefox, and Chrome and Safari aren't supported. Just a thought.

Autopkg would make the most sense overall to use for this purpose. However, everyone's needs and/or tolerances for what should be something packaged and contained in the JSS, versus just allowing the clients to download and install the latest version, will be unique. That said, I have a single script that can be used to update up to 8 different apps/plug-ins, including Flash Player, Oracle's Java, Silverlight, Adobe Reader, VLC, Flip4Mac (free version), Office 2011 and Firefox. In all above cases, it doesn't require any packaging of the apps or plug-ins. It will direct the client to download and install the product directly. For this reason, if internet bandwidth usage is a concern, then this wouldn't be a good solution. If bandwidth use is not a concern, then it can be an option.

My primary reason for working on it was that I was getting tired of needing to build complex Smart Groups to target the right machines with package install policies. The script checks the installed version and will know if it needs to be updated. If its not installed, in all cases except for Office since those are only updaters, it can install it new. Its just a flag you can set in the script to install new or skip if not installed. The script also has both a silent mode and a Self Service mode, which uses cocoaDialog for dialogs, progress bars and feedback, etc.

I've posted the script that I mentioned above to my github page now. The information can be found here: Its the first script mentioned in the ReadMe, 'UpdateCoreApps.sh' which you can get to directly with this link: The ReadMe has most of the information you need to understand how it works, but if anyone has questions on it, feel free to ask. Just a couple of details: The power of the script comes from a case statement that sets a large number of variables to use as the script runs, which is set by whatever is passed in Parameter 4.

The case statement keeps the number of functions down a bit since in some cases a single function can be used for any of the apps or plug-ins the script can update. As I mentioned above, since the script downloads updates directly and installs them, bandwidth conscious environments may not want to use something like this since it means each client will be accessing the downloads over the internet. But the advantage of the approach is not needing to worry about Smart Groups and updating Smart Groups to target Macs that need an update. The script takes care of the version checks. The script is still a little bit of a work in progress but is pretty much feature complete as I envisioned it anyway. But of course if you see anything not working, or see any odd issues, let me know and I will look into it. Any feedback is welcome.

And - thanks for the feedback guys. @ Jason - right now it works with one app/plug-in at a time. This is because when I began working on it, I saw it as a way to add to single policies that would appear in Self Service Though I've already been thinking about a way to make it run through a list of apps to check and update all of them at once. In fact, I have something else that is doing something along those lines right now, so it shouldn't be hard to do, once I get around to it. As for the Java issue, what OS version did you test on? Was it Yosemite?

I've occasionally seen some issues with 10.10 and the Java version check. I thought I corrected that, but I may need to take another look at it.

Updates To My

I just tested the script today against 10.9.5 and it was working fine to grab the latest Java version. And - If you guys can let me know some details on the Macs you tested the Oracle Java update on, I can see if I can replicate it. If so, I'll see how to get it fixed.

As I mentioned, I don't see the issue in testing on 10.9.5, so I suspect it may be under 10.10 or an earlier OS, so I would just need to know that if possible. As for making it work to update all apps/plug-ins at once, as I mentioned, its something I've been thinking about. Just a question on that though - were you guys thinking mostly silent updates, or also for Self Service? If you also mean the latter, I would have to think about how to make that happen. Right now, its designed to work as follows in Self Service mode- 1) Policy runs and checks installed version against current released version 2) If a new version is found, it prompts the user if they would like to update 3) If they click Update Now it: a) Shows download progress for update b) Shows install progress as it installs 4) Shows final confirmation dialog (success or failure) To have that sequence repeat for as many as 7 or 8 products at once would not be a good UX, so it would need to be reworked quite a bit.

Start your wedding guest list with The Knot to easily manage your guest count, online RSVPs, gift tracking, meal choices, thank-you notes and more for every. Use this wedding guest list template to track each guest's name, address, relationship, number in party, shower, ceremony and reception RSVPs, food choice,. Download Guest List Organizer Lite for macOS 10.7 or later and enjoy it on your Mac. I'm currently using this app (the free version) to plan my wedding. This app works ok to keep the guest list, but a spreadsheet would have done the same. Wedding guest tracker for mac. Sep 30, 2016 - Jun 3, 2018- ♥ Free Wedding Organization Workbook for Mac Numbers. How to Make Your Wedding Guest List Excel Spreadsheet. Nov 22, 2018 - 7 Free Wedding Templates You Can Use to Create Your Guest List. A computer with a wedding guest list tracker open.

The same general process under the hood would apply for determining what needs to be updated, but i would need to show it as a single installation process and not separate ones for each. I'm not saying it isn't possible, just that it would take some work. I'm willing to do it, but its not a couple of lines of code change. I realize I'm a little late to the party, but here is the script I created to install/update Firefox with the latest ESR version: #!/usr/bin/python ############ # This script installs/updates the latest ESR version of the Firefox web browser.

############ # 1.0 - Jorge Escala - 2014-12-24 #. Initial script creation. Just curious, but when did you download the script? I had corrected that issue some days back and updated the script on github. It was a string in the case statement that was set wrong, so it was looking for the wrong package name. Try downloading the script again from my page and try it again. If you still see an issue with this, either post here, or better yet, submit an issue on my github page so we can track it.

In the meantime, I'll run it locally in silent mode to see if I can reproduce the problem. The ftp site is giving a 404 error now. I had to edit a similar script that had been working until recently. #!/bin/sh # updateFirefox.sh #to determine if there's a update for Firefox and, if there is, deploy it # #to show script startup in maintlogfile echo 'start updateFirefox.sh' # date # ffv=$(/Applications/Firefox.app/Contents/MacOS/firefox -v) set - $ffv ffvn=$3 echo 'Installed Firefox version is $ffvn' # somehow find current version curl -O FireFox.dmg ' /scripts/firefox.txt # parse text file to find dmg file name and version nffvf=$(grep dmg /scripts/firefox.txt sed 's/.href= ' (.dmg )./ 1/') nffv=$(grep dmg /scripts/firefox.txt sed 's/.releases.

(. ).mac./ 1/') echo 'Latest Firefox version is $nffv' if '$ffvn'.

Changed the path to /tmp #!/bin/sh # updateFirefox.sh #to determine if there's a update for Firefox and, if there is, deploy it # #to show script startup in maintlogfile echo 'start updateFirefox.sh' # date # ffv=$(/Applications/Firefox.app/Contents/MacOS/firefox -v) set - $ffv ffvn=$3 echo 'Installed Firefox version is $ffvn' # somehow find current version curl -O FireFox.dmg ' /tmp/firefox.txt # parse text file to find dmg file name and version nffvf=$(grep dmg /tmp/firefox.txt sed 's/.href= ' (.dmg )./ 1/') nffv=$(grep dmg /tmp/firefox.txt sed 's/.releases. (. ).mac./ 1/') echo 'Latest Firefox version is $nffv' if '$ffvn'. I don't know if this would help at all being that it's a bit of an older thread but I found this page after digging around: Firefox actually tells you how to use wget to download the file, however that only works if you have wget installed on your machine.

Updates To My 'install All Firefox Bash Script For Mac Pro

Mac

I was able to cobble together this cURL command to download the file: curl -GL -o Firefox.dmg -d 'product=firefox-latest&os=osx&lang=en-US' I figured this would help is you're not using the ESR version and simply using the public version. I took the script and wrapped it up in a Platypus app so users can see the output/progress. I also added a sleep 10 at the end to give users a chance to see the final status before it automatically closed. I then pushed the app to /Applications/Utilities/ and built a Policy to run /Applications/Utilities/FirefoxUpdater.app/Contents/MacOS/Firefox Update since it needs elevated rights to install the updates.

Updates To My 'install All Firefox Bash Script For Mac Os

Seems to work like a champ. I'm trying to find a downside to this though. Is there really? So I've applied an edit to use the Public releases for FireFox and the script seems to work great since the end result is an updated working version, but I get a curl error. Even with the following error everything seems to work. (I just don't like seeing errors though).

Curl: Remote file name has no length! Curl: try 'curl -help' or 'curl -manual' for more information Any ideas? First off, THANK YOU!

Trying your script on a 10.12.5 machine with no firefox installed, i'm getting this. Script result: Starting Firefox ESR installer script Jul, 03 2017 04:12:41 PM Downloading latest version. Current: nonelatest: 52.2.1 Traceback (most recent call last): File '/Library/Application Support/JAMF/tmp/Firefox Update & Install', line 87, in if int(currentFirefoxVersion) = int(latestFirefoxVersion):ValueError: invalid literal for int with base 10: 'none' I fixed a small part of the code, changing 'none' to 0. # # Get currently installed version of Firefox if isfile(plistFile): pl = readPlist(plistFile) currentFirefoxVersion=pl'CFBundleShortVersionString' else: currentFirefoxVersion='0' #. I have the same issue with the app icon on latest High Sierra 10.13.6 using this script. It's something tied to icon cache, tried a few things, like deleting icon cache in /private/var/folders but didn't work.

What worked was just 'touching' the app: sudo touch /Applications/Firefox.app Someone also said that if this is not enough maybe touching the Info.plist inside the Contents folder, but for me always worked just with the.app sudo touch /Applications/Firefox.app/Contents/Info.plist And also, what I found out, this happens only for the user that is logged in when the script runs, and I think a log out/restart will fix it by itself.