annotate DependencyLoader_Bootstrap/bootstrap.lua @ 12:b230b94d4487
fixed Addon.lua to use the unhooked EnableAddOn (still needs to be changed to grab from the interface)
improved the error message when creating an Addon object on a Blizzard addon (will add direct support later)
implemented the hooks on EnableAddOn and LoadAddOn
rearranged functions inside Tree.lua, with some edits
copied OptDeps from main module to the bootstrap module, to delegate loading to the client when possible
author |
mckenziemc |
date |
Fri, 10 Dec 2010 00:21:17 -0800 |
parents |
e0a4a8b5b389 |
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
|