shadowm

Untitled

Feb 22nd, 2012
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. /**
  2.  * Get information about an (optionally installed) add-on compared against the add-ons server.
  3.  *
  4.  * @param addon The add-ons server entry information.
  5.  * @param t     The local tracking status information.
  6.  */
  7. void get_addon_tracking_info(addon_info& addon, addon_tracking_info& t)
  8. {
  9.     const std::string& id = addon.id;
  10.  
  11.     t.can_publish = have_addon_pbl_info(id);
  12.     t.in_version_control = have_addon_in_vcs_tree(id);
  13.     t.installed_version = version_info();
  14.  
  15.     if(is_addon_installed(id)) {
  16.         try {
  17.             t.installed_version = get_addon_version_info(id);
  18.             const version_info& remote_version = addon.version;
  19.  
  20.             if(remote_version == t.installed_version) {
  21.                 t.state = ADDON_INSTALLED;
  22.             } else if(remote_version > t.installed_version) {
  23.                 t.state = ADDON_INSTALLED_UPGRADABLE;
  24.             } else /* if(remote_version < t.installed_version) */ {
  25.                 t.state = ADDON_INSTALLED_OUTDATED;
  26.             }
  27.         } catch(version_info::not_sane_exception const&) {
  28.             ERR_AC << "local add-on '" << name << "' has invalid or missing version info, skipping from updates check...\n";
  29.             t.state = ADDON_NOT_TRACKED;
  30.         }
  31.     } else {
  32.         t.state = ADDON_NONE;
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment