[status, message] = checkVersion(filename, fexId, mode)
checkVersion implements an auto-update background mechanism to check for a newer version of a file on the Matlab File Exchange (FEX). This enables FEX authors to easily embed a non-intrusive update mechanism in their utilities, enabling its users to automatically update whenever a new version is uploaded to FEX.
checkVersion(filename,fexId) checks on FILENAME's File Exchange webpage whether any newer version of this utility has been uploaded. If so, a popup notice is presented with the date and description of the latest version. The popup enables users to download the newer version into the current folder, or skip. There is also an option to skip the update and not to remind ever again.
checkVersion is typically used after an applications has completed its main task or has presented its GUI, in order to silently check for an available update with minimal impact on the user. This could also be done by using a background single-shot timer (see example below).
checkVersion(...,'silent') runs checkVersion in silent mode, without prompting the user in case a newer version is detected. Newer file versions will automatically be downloaded and installed.
[status, message] = checkVersion(...) returns a string with the update check's status (ignored / unknown / up-to-date / available / downloaded / error), along with a descriptive message.
status = checkVersion('uiinspect',17935);
[status, latestUploadDate] = checkVersion('uiinspect',17935);
[status, errorMessage] = checkVersion('noSuchFile',1234);
% run checkVersion in a background single-shot timer
This utility will silently fail if and when MathWorks will ever modify the File Exchange webpage format. In such case, download the latest version of the utility, which hopefully solves the problem, or send me an email.
Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)
Experienced with the automatic update feature for uiinspect:
It would be nice if before the update download you could check if the fileattrib is read-only. In this case the update fails.
You could remove the Readonly flag without asking since if the user wants to update he wants to overwrite the old version.
Reason of Read-only flag comes from Version Management Tool. (If file is checked-in it is set to Read-only.)
Most of the time I forget to check-out when I am asked for the update and happily trigger it.
This is only one line code to add: fileattrib(file,'+w').
Ensure file is writable before updating (Thierry Dalon); increased FEX grace period 2=>3 days
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.