annotate DependencyLoader_Bootstrap/bootstrap.lua @ 15:a46bf694050c

cleaned up Tree's methods a bit and improved documentation Addon:Exists will now return false for Blizzard addons (needs to be handled better) Addon.lua will now use the raw hooks from the interface module fixed the inverted returns from IsForceLoadAvailable EnableAddOn and LoadAddOn hooks will now skip the extra processing if the addon does not exist or is a Blizzard addon moved the EnableAddOn queing to the interface
author mckenziemc
date Sat, 11 Dec 2010 01:48:39 -0800
parents b230b94d4487
children e7995d599184
rev   line source
mckenziemc@0 1 -- bootstrap.lua
mckenziemc@0 2 -- Bootstrap code for DependencyLoader, allowing
mckenziemc@0 3 -- the user to successfully load it without
mckenziemc@0 4 -- explicitly enabling its own dependencies.
mckenziemc@0 5
mckenziemc@0 6
mckenziemc@0 7 local addonName, addonTable = ...
mckenziemc@0 8
mckenziemc@10 9
mckenziemc@12 10 -- FIXME: don't force-load if we're already logged in
mckenziemc@12 11
mckenziemc@12 12
mckenziemc@10 13 print("loading DependencyLoader_Bootstrap")
mckenziemc@10 14
mckenziemc@0 15 -- TODO: move and use dependency parsing function here?
mckenziemc@10 16 local dependencies = {"LibStub", "Ace3", "LibBuilder-1.0", "LibPrint-1.0", "LibScriptLink-1.0"}
mckenziemc@0 17
mckenziemc@0 18 local canLoad = true
mckenziemc@0 19 for _, addon in pairs(dependencies) do
mckenziemc@0 20 local reason = select(6, GetAddOnInfo(addon))
mckenziemc@0 21
mckenziemc@10 22 if reason ~= nil and reason ~= "DISABLED" and reason ~= "DEP_DISABLED" then
mckenziemc@10 23 print("Can't load", addon)
mckenziemc@0 24 canLoad = false
mckenziemc@0 25 break
mckenziemc@0 26 end
mckenziemc@0 27 end
mckenziemc@0 28
mckenziemc@0 29 if not canLoad then
mckenziemc@0 30 print("Can't load DependencyLoader")
mckenziemc@0 31 return
mckenziemc@0 32 end
mckenziemc@0 33
mckenziemc@0 34
mckenziemc@10 35 print("bootstrap: Loading DependencyLoader")
mckenziemc@0 36
mckenziemc@0 37 for _, addon in pairs(dependencies) do
mckenziemc@0 38 EnableAddOn(addon)
mckenziemc@10 39 LoadAddOn(addon)
mckenziemc@0 40 end
mckenziemc@0 41
mckenziemc@10 42 EnableAddOn("DependencyLoader")
mckenziemc@10 43 LoadAddOn("DependencyLoader")
mckenziemc@0 44