comboy-autumn 3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|