comboy-autumn 3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +1192 -0
- data/autumn.gemspec +25 -0
- data/bin/autumn +27 -0
- data/lib/autumn.rb +2 -0
- data/lib/autumn/authentication.rb +290 -0
- data/lib/autumn/channel_leaf.rb +107 -0
- data/lib/autumn/coder.rb +166 -0
- data/lib/autumn/console_boot.rb +9 -0
- data/lib/autumn/ctcp.rb +250 -0
- data/lib/autumn/daemon.rb +207 -0
- data/lib/autumn/datamapper_hacks.rb +290 -0
- data/lib/autumn/foliater.rb +231 -0
- data/lib/autumn/formatting.rb +236 -0
- data/lib/autumn/generator.rb +231 -0
- data/lib/autumn/genesis.rb +191 -0
- data/lib/autumn/inheritable_attributes.rb +162 -0
- data/lib/autumn/leaf.rb +738 -0
- data/lib/autumn/log_facade.rb +49 -0
- data/lib/autumn/misc.rb +87 -0
- data/lib/autumn/script.rb +74 -0
- data/lib/autumn/speciator.rb +165 -0
- data/lib/autumn/stem.rb +919 -0
- data/lib/autumn/stem_facade.rb +176 -0
- data/resources/daemons/Anothernet.yml +3 -0
- data/resources/daemons/AustHex.yml +29 -0
- data/resources/daemons/Bahamut.yml +67 -0
- data/resources/daemons/Dancer.yml +3 -0
- data/resources/daemons/GameSurge.yml +3 -0
- data/resources/daemons/IRCnet.yml +3 -0
- data/resources/daemons/Ithildin.yml +7 -0
- data/resources/daemons/KineIRCd.yml +56 -0
- data/resources/daemons/PTlink.yml +6 -0
- data/resources/daemons/QuakeNet.yml +20 -0
- data/resources/daemons/RFC1459.yml +158 -0
- data/resources/daemons/RFC2811.yml +16 -0
- data/resources/daemons/RFC2812.yml +36 -0
- data/resources/daemons/RatBox.yml +25 -0
- data/resources/daemons/Ultimate.yml +24 -0
- data/resources/daemons/Undernet.yml +6 -0
- data/resources/daemons/Unreal.yml +110 -0
- data/resources/daemons/_Other.yml +7 -0
- data/resources/daemons/aircd.yml +33 -0
- data/resources/daemons/bdq-ircd.yml +3 -0
- data/resources/daemons/hybrid.yml +38 -0
- data/resources/daemons/ircu.yml +67 -0
- data/resources/daemons/tr-ircd.yml +8 -0
- data/skel/Rakefile +135 -0
- data/skel/config/global.yml +2 -0
- data/skel/config/seasons/testing/database.yml +7 -0
- data/skel/config/seasons/testing/leaves.yml +7 -0
- data/skel/config/seasons/testing/season.yml +2 -0
- data/skel/config/seasons/testing/stems.yml +9 -0
- data/skel/leaves/administrator/README +20 -0
- data/skel/leaves/administrator/controller.rb +67 -0
- data/skel/leaves/administrator/views/autumn.txt.erb +1 -0
- data/skel/leaves/administrator/views/reload.txt.erb +11 -0
- data/skel/leaves/insulter/README +17 -0
- data/skel/leaves/insulter/controller.rb +65 -0
- data/skel/leaves/insulter/views/about.txt.erb +1 -0
- data/skel/leaves/insulter/views/help.txt.erb +1 -0
- data/skel/leaves/insulter/views/insult.txt.erb +1 -0
- data/skel/leaves/scorekeeper/README +34 -0
- data/skel/leaves/scorekeeper/config.yml +2 -0
- data/skel/leaves/scorekeeper/controller.rb +104 -0
- data/skel/leaves/scorekeeper/helpers/general.rb +64 -0
- data/skel/leaves/scorekeeper/models/channel.rb +12 -0
- data/skel/leaves/scorekeeper/models/person.rb +14 -0
- data/skel/leaves/scorekeeper/models/pseudonym.rb +11 -0
- data/skel/leaves/scorekeeper/models/score.rb +14 -0
- data/skel/leaves/scorekeeper/tasks/stats.rake +17 -0
- data/skel/leaves/scorekeeper/views/about.txt.erb +1 -0
- data/skel/leaves/scorekeeper/views/change.txt.erb +5 -0
- data/skel/leaves/scorekeeper/views/history.txt.erb +11 -0
- data/skel/leaves/scorekeeper/views/points.txt.erb +5 -0
- data/skel/leaves/scorekeeper/views/usage.txt.erb +1 -0
- data/skel/script/console +34 -0
- data/skel/script/daemon +29 -0
- data/skel/script/destroy +48 -0
- data/skel/script/generate +48 -0
- data/skel/script/server +15 -0
- metadata +170 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
channel_mode:
|
3
|
+
a: :anonymous
|
4
|
+
O: :creator
|
5
|
+
e: :ban_exception
|
6
|
+
q: :quiet
|
7
|
+
r: :reop
|
8
|
+
h: :halfop
|
9
|
+
I: :invitation_mask
|
10
|
+
channel_prefix:
|
11
|
+
+: :network_unmoderated
|
12
|
+
"!": :network_safe
|
13
|
+
privilege:
|
14
|
+
O: :creator
|
15
|
+
usermode:
|
16
|
+
"@": :creator
|
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
event:
|
3
|
+
478: :err_banlistfull
|
4
|
+
346: :rpl_invitelist
|
5
|
+
247: :rpl_statsbline
|
6
|
+
5: :rpl_bounce
|
7
|
+
484: :err_restricted
|
8
|
+
209: :rpl_traceclass
|
9
|
+
347: :rpl_endofinvitelist
|
10
|
+
325: :rpl_uniqopis
|
11
|
+
485: :err_uniqoprivsneeded
|
12
|
+
408: :err_nosuchservice
|
13
|
+
210: :rpl_tracereconnect
|
14
|
+
1: :rpl_welcome
|
15
|
+
348: :rpl_exceptlist
|
16
|
+
2: :rpl_yourhost
|
17
|
+
437: :err_unavailresource
|
18
|
+
415: :err_badmask
|
19
|
+
349: :rpl_endofexceptlist
|
20
|
+
250: :rpl_statsdline
|
21
|
+
476: :err_badchanmask
|
22
|
+
234: :rpl_servlist
|
23
|
+
3: :rpl_created
|
24
|
+
383: :rpl_youreservice
|
25
|
+
262: :rpl_traceend
|
26
|
+
240: :rpl_statsvline
|
27
|
+
207: :rpl_traceservice
|
28
|
+
477: :err_nochanmodes
|
29
|
+
246: :rpl_statsping
|
30
|
+
235: :rpl_servlistend
|
31
|
+
4: :rpl_myinfo
|
32
|
+
263: :rpl_tryagain
|
33
|
+
usermode:
|
34
|
+
a: :away
|
35
|
+
O: :local_operator
|
36
|
+
r: :restricted
|
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
event:
|
3
|
+
720: :rpl_omotdstart
|
4
|
+
709: :rpl_etrace
|
5
|
+
726: :rpl_notestline
|
6
|
+
715: :err_knockdisabled
|
7
|
+
704: :rpl_helpstart
|
8
|
+
721: :rpl_omotd
|
9
|
+
710: :rpl_knock
|
10
|
+
716: :rpl_targumodeg
|
11
|
+
705: :rpl_helptxt
|
12
|
+
722: :rpl_endofomotd
|
13
|
+
711: :rpl_knockdlvr
|
14
|
+
717: :rpl_targnotify
|
15
|
+
706: :rpl_endofhelp
|
16
|
+
723: :err_noprivs
|
17
|
+
712: :err_toomanyknock
|
18
|
+
718: :rpl_umodegmsg
|
19
|
+
724: :rpl_testmark
|
20
|
+
713: :err_chanopen
|
21
|
+
702: :rpl_modlist
|
22
|
+
708: :rpl_etracefull
|
23
|
+
725: :rpl_testline
|
24
|
+
714: :err_knockonchan
|
25
|
+
703: :rpl_endofmodlist
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
event:
|
3
|
+
621: :rpl_rules
|
4
|
+
610: :rpl_isoper
|
5
|
+
434: :err_norules
|
6
|
+
616: :rpl_whoishost
|
7
|
+
275: :rpl_statsdline
|
8
|
+
622: :rpl_endofrules
|
9
|
+
611: :rpl_islocop
|
10
|
+
617: :rpl_whoisbot
|
11
|
+
386: :rpl_ircops
|
12
|
+
623: :rpl_mapmore
|
13
|
+
612: :rpl_isnotoper
|
14
|
+
387: :rpl_endofircops
|
15
|
+
624: :rpl_omotdstart
|
16
|
+
613: :rpl_endofisoper
|
17
|
+
630: :rpl_settings
|
18
|
+
619: :rpl_whowashost
|
19
|
+
608: :rpl_watchclear
|
20
|
+
625: :rpl_omotd
|
21
|
+
631: :rpl_endofsettings
|
22
|
+
620: :rpl_rulesstart
|
23
|
+
626: :rpl_endofo
|
24
|
+
615: :rpl_whoismodes
|
@@ -0,0 +1,110 @@
|
|
1
|
+
---
|
2
|
+
channel_mode:
|
3
|
+
V: :no_invite
|
4
|
+
K: :noknock
|
5
|
+
L: :link
|
6
|
+
A: :admin_only
|
7
|
+
a: :channel_protection
|
8
|
+
M: :regonly
|
9
|
+
N: :no_nick_change
|
10
|
+
C: :no_ctcp
|
11
|
+
z: :secured_only
|
12
|
+
O: :oper_only
|
13
|
+
Q: :no_kick
|
14
|
+
q: :channel_owner
|
15
|
+
f: :flood_limit
|
16
|
+
G: :strip_bad_words
|
17
|
+
S: :strip
|
18
|
+
H: :no_hiding
|
19
|
+
u: :auditorium
|
20
|
+
event:
|
21
|
+
389: :rpl_endofalist
|
22
|
+
294: :rpl_helpfwd
|
23
|
+
484: :err_attackdeny
|
24
|
+
247: :rpl_statsxline
|
25
|
+
295: :rpl_helpign
|
26
|
+
447: :err_nonickchange
|
27
|
+
485: :err_killdeny
|
28
|
+
334: :rpl_listsyntax
|
29
|
+
486: :err_htmdisabled
|
30
|
+
524: :err_operspverify
|
31
|
+
600: :rpl_logon
|
32
|
+
220: :rpl_statsbline
|
33
|
+
477: :err_needreggednick
|
34
|
+
610: :rpl_mapmore
|
35
|
+
601: :rpl_logoff
|
36
|
+
468: :err_onlyserverscanchange
|
37
|
+
335: :rpl_whoisbot
|
38
|
+
972: :err_cannotdocommand
|
39
|
+
307: :rpl_whoisregnick
|
40
|
+
250: :rpl_statsconn
|
41
|
+
459: :err_nohiding
|
42
|
+
440: :err_servicesdown
|
43
|
+
602: :rpl_watchoff
|
44
|
+
222: :rpl_sqline_nick
|
45
|
+
640: :rpl_dumping
|
46
|
+
469: :err_linkset
|
47
|
+
460: :err_notforhalfops
|
48
|
+
232: :rpl_rules
|
49
|
+
479: :err_linkfail
|
50
|
+
308: :rpl_rulesstart
|
51
|
+
603: :rpl_watchstat
|
52
|
+
223: :rpl_statsgline
|
53
|
+
641: :rpl_dumprpl
|
54
|
+
470: :err_linkchannel
|
55
|
+
489: :err_secureonlychan
|
56
|
+
290: :rpl_helphdr
|
57
|
+
499: :err_chanownprivneeded
|
58
|
+
480: :err_cannotknock
|
59
|
+
309: :rpl_endofrules
|
60
|
+
518: :err_noinvite
|
61
|
+
385: :rpl_notoperanymore
|
62
|
+
642: :rpl_eodump
|
63
|
+
604: :rpl_nowon
|
64
|
+
224: :rpl_statstline
|
65
|
+
310: :rpl_whoishelpop
|
66
|
+
519: :err_admonly
|
67
|
+
386: :rpl_qlist
|
68
|
+
6: :rpl_map
|
69
|
+
291: :rpl_helpop
|
70
|
+
320: :rpl_whoisspecial
|
71
|
+
605: :rpl_nowoff
|
72
|
+
225: :rpl_statseline
|
73
|
+
434: :err_norules
|
74
|
+
520: :err_operonly
|
75
|
+
387: :rpl_endofqlist
|
76
|
+
7: :rpl_mapend
|
77
|
+
425: :err_noopermotd
|
78
|
+
292: :rpl_helptlr
|
79
|
+
378: :rpl_whoishost
|
80
|
+
606: :rpl_watchlist
|
81
|
+
226: :rpl_statsnline
|
82
|
+
435: :err_serviceconfused
|
83
|
+
388: :rpl_alist
|
84
|
+
293: :rpl_helphlp
|
85
|
+
455: :err_hostilename
|
86
|
+
607: :rpl_endofwatchlist
|
87
|
+
227: :rpl_statsvline
|
88
|
+
379: :rpl_whoismodes
|
89
|
+
usermode:
|
90
|
+
V: :webtv
|
91
|
+
v: :victim
|
92
|
+
W: :whois_paranoia
|
93
|
+
A: :server_admin
|
94
|
+
a: :services_admin
|
95
|
+
x: :host_hiding
|
96
|
+
B: :bot
|
97
|
+
b: :chatops
|
98
|
+
N: :network_admin
|
99
|
+
C: :co_admin
|
100
|
+
z: :secure_conn
|
101
|
+
p: :hide_channels
|
102
|
+
q: :kix
|
103
|
+
R: :no_non_registered
|
104
|
+
G: :strip_bad_words
|
105
|
+
S: :service
|
106
|
+
s: :server_notices
|
107
|
+
H: :hide_oper
|
108
|
+
T: :block_ctcp
|
109
|
+
t: :modified_host
|
110
|
+
I: :invisible_joinpart
|
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
event:
|
3
|
+
379: :rpl_kicklinked
|
4
|
+
291: :rpl_chaninfo_banned
|
5
|
+
269: :rpl_end_netstat
|
6
|
+
308: :rpl_notifyaction
|
7
|
+
286: :rpl_chaninfo_users
|
8
|
+
380: :rpl_banlinked
|
9
|
+
292: :rpl_chaninfo_bans
|
10
|
+
50: :rpl_attemptingjunc
|
11
|
+
419: :err_lengthtruncated
|
12
|
+
309: :rpl_nicktrace
|
13
|
+
287: :rpl_chaninfo_chops
|
14
|
+
265: :rpl_localusers
|
15
|
+
210: :rpl_stats
|
16
|
+
293: :rpl_chaninfo_invite
|
17
|
+
51: :rpl_attemptingreroute
|
18
|
+
299: :rpl_end_chaninfo
|
19
|
+
288: :rpl_chaninfo_voices
|
20
|
+
266: :rpl_globalusers
|
21
|
+
470: :err_kickedfromchan
|
22
|
+
294: :rpl_chaninfo_invites
|
23
|
+
377: :rpl_kickexpired
|
24
|
+
289: :rpl_chaninfo_away
|
25
|
+
267: :rpl_start_netstat
|
26
|
+
295: :rpl_chaninfo_kick
|
27
|
+
273: :rpl_notify
|
28
|
+
378: :rpl_banexpired
|
29
|
+
290: :rpl_chaninfo_opers
|
30
|
+
268: :rpl_netstat
|
31
|
+
296: :rpl_chaninfo_kicks
|
32
|
+
285: :rpl_chaninfo_handle
|
33
|
+
274: :rpl_endnotify
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
channel_mode:
|
3
|
+
a: :hideops
|
4
|
+
p: :private
|
5
|
+
event:
|
6
|
+
247: :rpl_statsxline
|
7
|
+
225: :rpl_statsdline
|
8
|
+
484: :err_desync
|
9
|
+
385: :rpl_notoperanymore
|
10
|
+
220: :rpl_statspline
|
11
|
+
479: :err_badchanname
|
12
|
+
265: :rpl_localusers
|
13
|
+
249: :rpl_statsdebug
|
14
|
+
266: :rpl_globalusers
|
15
|
+
503: :err_ghostedclient
|
16
|
+
245: :rpl_statssline
|
17
|
+
14: :rpl_yourcookie
|
18
|
+
246: :rpl_statsuline
|
19
|
+
224: :rpl_statsfline
|
20
|
+
user_prefix:
|
21
|
+
"%": :half_operator
|
22
|
+
usermode:
|
23
|
+
k: :kills
|
24
|
+
l: :locops
|
25
|
+
a: :admin
|
26
|
+
x: :external
|
27
|
+
b: :bots
|
28
|
+
y: :spy
|
29
|
+
n: :nchange
|
30
|
+
c: :client_conns
|
31
|
+
z: :operwall
|
32
|
+
d: :debug
|
33
|
+
f: :full
|
34
|
+
r: :rej
|
35
|
+
g: :callerid
|
36
|
+
u: :unauth
|
37
|
+
privilege:
|
38
|
+
h: :half_operator
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
server_mode:
|
3
|
+
s: :service
|
4
|
+
h: :hub
|
5
|
+
channel_mode:
|
6
|
+
r: :regonly
|
7
|
+
event:
|
8
|
+
511: :err_silelistfull
|
9
|
+
280: :rpl_glist
|
10
|
+
247: :rpl_statsgline
|
11
|
+
236: :rpl_statsverbose
|
12
|
+
16: :rpl_mapmore
|
13
|
+
517: :err_disabled
|
14
|
+
495: :err_badlogtype
|
15
|
+
330: :rpl_whoisaccount
|
16
|
+
275: :rpl_statsdline
|
17
|
+
468: :err_invalidusername
|
18
|
+
391: :rpl_time
|
19
|
+
281: :rpl_endofglist
|
20
|
+
270: :rpl_privs
|
21
|
+
248: :rpl_statsuline
|
22
|
+
237: :rpl_statsengine
|
23
|
+
17: :rpl_mapend
|
24
|
+
518: :err_longmask
|
25
|
+
496: :err_badlogsys
|
26
|
+
524: :err_quarantined
|
27
|
+
513: :err_badping
|
28
|
+
282: :rpl_jupelist
|
29
|
+
271: :rpl_silelist
|
30
|
+
238: :rpl_statsfline
|
31
|
+
519: :err_toomanyusers
|
32
|
+
497: :err_badlogvalue
|
33
|
+
354: :rpl_whospcrpl
|
34
|
+
514: :err_invalid_error
|
35
|
+
437: :err_bannickchange
|
36
|
+
338: :rpl_whoisactually
|
37
|
+
283: :rpl_endofjupelist
|
38
|
+
272: :rpl_endofsilelist
|
39
|
+
250: :rpl_statsconn
|
40
|
+
228: :rpl_statsqline
|
41
|
+
217: :rpl_statspline
|
42
|
+
8: :rpl_snomask
|
43
|
+
520: :err_masktoowide
|
44
|
+
498: :err_isoperlchan
|
45
|
+
333: :rpl_topicwhotime
|
46
|
+
515: :err_badexpire
|
47
|
+
493: :err_nofeature
|
48
|
+
438: :err_nicktoofast
|
49
|
+
416: :err_querytoolong
|
50
|
+
284: :rpl_feature
|
51
|
+
9: :rpl_statmemtot
|
52
|
+
477: :err_needreggednick
|
53
|
+
334: :rpl_listusage
|
54
|
+
246: :rpl_statstline
|
55
|
+
15: :rpl_map
|
56
|
+
516: :err_dontcheat
|
57
|
+
494: :err_badfeature
|
58
|
+
439: :err_targettoofast
|
59
|
+
340: :rpl_userip
|
60
|
+
10: :rpl_statmem
|
61
|
+
usermode:
|
62
|
+
k: :service
|
63
|
+
x: :host_hiding
|
64
|
+
d: :deaf
|
65
|
+
r: :registered
|
66
|
+
g: :debug
|
67
|
+
s: :server_notices
|
data/skel/Rakefile
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'autumn/genesis'
|
3
|
+
|
4
|
+
task :default do
|
5
|
+
puts 'Type "rake --tasks" to see a list of tasks you can perform.'
|
6
|
+
end
|
7
|
+
|
8
|
+
# Load the Autumn environment.
|
9
|
+
task :environment do
|
10
|
+
APP_ROOT = File.dirname(__FILE__)
|
11
|
+
@genesis = Autumn::Genesis.new
|
12
|
+
@genesis.load_global_settings
|
13
|
+
@genesis.load_season_settings
|
14
|
+
end
|
15
|
+
|
16
|
+
task :boot do
|
17
|
+
APP_ROOT = File.dirname(__FILE__)
|
18
|
+
@genesis = Autumn::Genesis.new
|
19
|
+
@genesis.boot! false
|
20
|
+
end
|
21
|
+
|
22
|
+
namespace :app do
|
23
|
+
desc "Launch the Autumn daemon"
|
24
|
+
task :start do
|
25
|
+
system 'script/daemon start'
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Stop the Autumn daemon"
|
29
|
+
task :stop do
|
30
|
+
system 'script/daemon stop'
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "Restart the Autumn daemon"
|
34
|
+
task :restart do
|
35
|
+
system 'script/daemon restart'
|
36
|
+
end
|
37
|
+
|
38
|
+
desc "Start Autumn but not as a daemon (stay on top)"
|
39
|
+
task :run do
|
40
|
+
system 'script/daemon run'
|
41
|
+
end
|
42
|
+
|
43
|
+
desc "Force the daemon to a stopped state (clears PID files)"
|
44
|
+
task :zap do
|
45
|
+
system 'script/daemon zap'
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
namespace :log do
|
50
|
+
desc "Remove all log files"
|
51
|
+
task :clear do
|
52
|
+
system 'rm -vf tmp/*.log tmp/*.output log/*.log*'
|
53
|
+
end
|
54
|
+
|
55
|
+
desc "Print all error messages in the log files"
|
56
|
+
task :errors => :environment do
|
57
|
+
season_log = "log/#{@genesis.config.global :season}.log"
|
58
|
+
system_log = 'tmp/autumn.log'
|
59
|
+
if File.exists? season_log then
|
60
|
+
puts "==== ERROR-LEVEL LOG MESSAGES ===="
|
61
|
+
File.open(season_log, 'r') do |log|
|
62
|
+
puts log.grep(/^[EF],/)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
if File.exists? system_log then
|
66
|
+
puts "==== UNCAUGHT EXCEPTIONS ===="
|
67
|
+
File.open(system_log, 'r') do |log|
|
68
|
+
puts log.grep(/^[EF],/)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def local_db?(db)
|
75
|
+
db.host.nil? or db.host == 'localhost'
|
76
|
+
end
|
77
|
+
|
78
|
+
namespace :db do
|
79
|
+
desc "Recreate database tables according to the model objects"
|
80
|
+
task :migrate => :boot do
|
81
|
+
dname = ENV['DB']
|
82
|
+
raise "Usage: DB=[Database config name] rake db:migrate" unless dname
|
83
|
+
raise "Unknown database config #{dname}" unless database = repository(dname.to_sym)
|
84
|
+
puts "Migrating the #{dname} database..."
|
85
|
+
# Find models that have definitions for the selected database and migrate them
|
86
|
+
repository(dname.to_sym) do
|
87
|
+
repository(dname.to_sym).models.each { |mod| mod.auto_migrate! dname.to_sym }
|
88
|
+
end
|
89
|
+
end
|
90
|
+
desc "Nondestructively update database tables according to the model objects"
|
91
|
+
task :upgrade => :boot do
|
92
|
+
dname = ENV['DB']
|
93
|
+
raise "Usage: DB=[Database config name] rake db:upgrade" unless dname
|
94
|
+
raise "Unknown database config #{dname}" unless database = repository(dname.to_sym)
|
95
|
+
puts "Upgrading the #{dname} database..."
|
96
|
+
# Find models that have definitions for the selected database and upgrade them
|
97
|
+
repository(dname.to_sym) do
|
98
|
+
repository(dname.to_sym).models.each { |mod| mod.auto_upgrade! dname.to_sym }
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
namespace :doc do
|
104
|
+
desc "Generate API documentation for Autumn"
|
105
|
+
task :api => :environment do
|
106
|
+
FileUtils.remove_dir 'doc/api' if File.directory? 'doc/api'
|
107
|
+
system "rdoc --main README --title 'Autumn API Documentation' -o doc/api --line-numbers --inline-source libs README"
|
108
|
+
end
|
109
|
+
|
110
|
+
desc "Generate documentation for all leaves"
|
111
|
+
task :leaves => :environment do
|
112
|
+
FileUtils.remove_dir 'doc/leaves' if File.directory? 'doc/leaves'
|
113
|
+
Dir.glob("leaves/*").each do |leaf_dir|
|
114
|
+
Dir.chdir leaf_dir do
|
115
|
+
system "rdoc --main README --title '#{File.basename(leaf_dir).camelcase} Documentation' -o ../../doc/leaves/#{File.basename leaf_dir} --line-numbers --inline-source controller.rb helpers models README"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
desc "Remove all documentation"
|
121
|
+
task :clear => :environment do
|
122
|
+
FileUtils.remove_dir 'doc/api' if File.directory? 'doc/api'
|
123
|
+
FileUtils.remove_dir 'doc/leaves' if File.directory? 'doc/leaves'
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
# Load any custom Rake tasks in the bot's tasks directory.
|
128
|
+
Dir["leaves/*"].each do |leaf|
|
129
|
+
leaf_name = File.basename(leaf, ".rb").downcase
|
130
|
+
namespace leaf_name.to_sym do # Tasks are placed in a namespace named after the leaf
|
131
|
+
FileList["leaves/#{leaf_name}/tasks/**/*.rake"].sort.each do |task|
|
132
|
+
load task
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|