Last Update 05-May-2020, Kim Tolbert
In August 2019, GSFC stopped allowing anonymous FTP as a security measure. This meant that the old perl/mirror/ftp method for updating SSW stopped working. We are working on a few alternatives including WGET, LFTP, and an all IDL solution. Currently the most reliable solution for all platforms is the WGET version, so it is now the default in the ssw_upgrade procedure. If that changes, this space will be updated. This document provides help using the new WGET version for updates. Unix/MacOS users don't have to change much; Windows users must alter their update script.
The instructions below assume you have done an SSW update since August 2019 when the old perl/mirror/ftp updates stopped working, and therefore have the wget executable, as well as the new version of the SSW routines that use wget. If you haven't, please follow the instructions here.
SSW links: SolarSoft, SSW Installation Guide
To update SSW interactively, while in SSWIDL, type
This will update all the SSW branches listed in the SSW_INSTR environment variable (as well as their dependencies,
and always includes gen and packages/binaries). This most likely will not update every branch in your SSW tree
since you probably run SSW with a subset of branches activated. To check your instrument list, type
To upgrade specific branches, type for example
ssw_upgrade, /hessi, /spawn
This will update the hessi branch (and any dependencies, and always includes gen and packages/binaries) of SSW.
You can also use ssw_upgrade to add an SSW branch that you didn't intially include when you installed SSW.
There is a corresponding sswdb_upgrade routine to update your SSWDB files if you have any.
When you update from a script, the file $SSW/site/setup/setup.ssw_upgrade controls the branches that will be updated.
This file looks like this
SSW_INSTR hessi, spex, xray, eit, lasco, cds, smei, bham, hafb, ucsd, proba2
and should contain a complete list of all branches installed on your local computer. This file is provided for you when you install SSW on a Linux/MacOS platform, but you may need to update it if you add branches. On Windows, this file is not provided on installation, but you can create one. Or if you follow the instructions below for a Windows script, your complete set of branches to update can be included in the update_ssw.bat file.
On Unix/MacOS create a script containing this line
#!/bin/csh $SSW/gen/bin/ssw_batch go_update_ssw $SSW/site/setup/update_ssw.log
You can run the script on demand or through a cron job. To run a cron job, you may need to add a few more lines to your script, such as the following (edit for your SSW location):
(This script has not changed since the switch to wget, so if you already had one, it should continue to work.)
setenv SSW /data/ssw
$SSW/gen/bin/ssw_batch go_update_ssw $SSW/site/setup/update_ssw.log
The old SSW update script for Windows that uses perl/mirror/ftp will no longer work. Follow the instructions below to create a new script, or do your updates interactively as described above.
Create two files in your $SSW/site/setup directory - update_ssw.bat and start_update_ssw.pro.
set SSW_INSTR=aia hessi hxrbs ontology spex vso xray grs
cd /d C:\Program Files\Exelis\IDL85\bin\bin.x86_64
idl C:\ssw\site\setup\start_update_ssw > C:\ssw\site\setup\update_ssw.log
This file is similar to the the .bat file you are using to start SSWIDL, so you could start with that. The key items are:
Create a file called start_update_ssw.pro (this will be run by the script in Step 1) containing this:
Run update_ssw.bat on demand (by clicking the file in $SSW/site/setup) or automatically on a schedule via the Task Scheduler. In either case, while it's running two DOS windows will appear. Don't close these windows unless you want to cancel the update.
To schedule automatic updates, do one of the following (you may need elevated privileges):
In a command prompt window, type, for example
schtasks /create /tn SSW_UPDATE /tr C:\ssw\site\setup\update_ssw.bat /sc daily /st 13:00
OR, to use the Windows Task Scheduler interface, do this:
In either case, you can check the scheduled task by typing in a command prompt window (edited for what you named the task)
schtasks /query /tn ssw_update