-
Notifications
You must be signed in to change notification settings - Fork 0
/
Rakefile
59 lines (50 loc) · 1.93 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# coding: utf-8
# bundler が thor をまるごと抱えているという恐ろしい状態で、
# 暫定修正版である groovenauts-thorの修正が反映されない事態が発生していましたが、
# ここで先にrequireすればサブコマンドのhelpも正しく動くのでひとまずこのまま行きます。
# bundler・・・
# https://github.com/bundler/bundler/tree/master/lib/bundler/vendor
require 'thor'
require 'thor/command'
require "bundler/gem_tasks"
require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec)
task :default => :spec
module Bundler
class GemHelper
def version_tag
d = File.basename(File.dirname(__FILE__))
"#{d}/#{version}"
end
end
end
langs = %w[en ja]
namespace :reference do
langs.each do |lang|
desc "generate reference in #{lang}, options: DEST, SUBDIR"
task lang.to_sym do
require "magellan/cli/reference_generator"
ENV["LANG"] = lang
I18n.locale = lang.to_sym
gen = Magellan::Cli::ReferenceGenerator.new(dest: ENV["DEST"] || ".", subdir: ENV['SUBDIR'] || "reference/#{lang}")
gen.run
end
end
desc "generate reference for devcenter"
task :devcenter do
dest = ENV["DEST"] ||= File.expand_path("../../../magellan-devcenter.github.io/content", __FILE__)
raise "directory not found: #{dest}" unless Dir.exist?(dest)
langs.each do |lang|
ENV["SUBDIR"] = "reference/magellan-cli/#{lang}"
system("bundle exec rake reference:#{lang}")
end
end
end
desc "generate reference in #{langs.join(', ')}, options: DEST, SUBDIR"
# 本当はこんなふうに書けると嬉しいけど、一度ロードされたクラスを
# LANGを変更して再ロードするのはしんどいので、別のプロセスで実行します
# task :reference => langs.map{|lang| :"reference:#{lang}"}
task :reference do
langs.each{|lang| system("bundle exec rake reference:#{lang}")}
end
Rake::Task[:build].enhance([:reference])