4 if %w{check_manifest clean package}.include?(ARGV[0])
5 Hoe.new('fuzed', "0.2.0") do |p|
6 p.rubyforge_name = 'fuzed'
7 p.author = ['Dave Fayram', 'Tom Preston-Werner']
8 p.email = ['tom@rubyisawesome.com']
9 p.summary = 'Leverage the YAWS webserver (and additional erlang-based infrastructure) to run Rails.'
10 p.url = 'fuzed.rubyforge.org'
11 # p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
12 # p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
13 p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
14 p.extra_deps << ['erlectricity', '>= 0.2.0']
18 ERLC_TEST_FLAGS = "-pa ebin/eunit -I include/eunit -DTEST"
19 ERLC_FLAGS = "+debug_info -W2 -I include -I include/yaws -o ebin"
20 ERLR_FLAGS = "+Bc +K true -smp enable -pz /usr/local/lib/yaws/ebin -pz ./etest -pz ./ebin/ -pz ./ebin/eunit"
23 sh "erlc #{ERLC_FLAGS} #{ERLC_TEST_FLAGS} elibs/*.erl"
27 sh "erlc #{ERLC_FLAGS} elibs/*.erl"
33 sh "sudo gem install pkg/fuzed*.gem"
37 sh "erl #{ERLR_FLAGS} -sname fuzed_console_#{$$}"
40 desc 'Generate manifest from git files'
42 sh 'git ls-tree --name-only -r HEAD > Manifest.txt'
45 task :test => [:default] do
48 env_peek = ENV['MOD'] || ENV['MODS'] || ENV['MODULE'] || ENV['MODULES']
50 mods = env_peek.split(",")
52 mods = Dir["etest/*_test.erl"].map { |x| x.match(/etest\/(.*)_test.erl/)[1] }
54 mod_directives = mods.map {|m| "-run #{m} test"}.join(" ")
55 # -run #{ENV['MOD']} test
56 sh %Q{erl +K true -smp enable -pz ./etest -pz ./ebin/yaws -pz ./ebin/ -pa ./ebin/eunit -sname local_console_#{$$} -noshell #{mod_directives} -run erlang halt}
59 desc "Upload site to Rubyforge"
61 sh "scp -r site/* mojombo@god.rubyforge.org:/var/www/gforge-projects/fuzed"
65 # sh "erl -boot start_sasl +Bc +K true -smp enable -pz ./etest -pz ./ebin -pz ./ebin/eunit -name 'master@volcano.local' -run fuzed start"
66 sh %Q{yaws --conf fuzed.conf --pa './ebin' --name "master@volano.local" --runmod fuzed --erlarg '+Bc +K true -smp enabled'}