2013-05-30 03:46:11 +08:00
|
|
|
require('rubygems')
|
|
|
|
|
require('json')
|
|
|
|
|
require('yaml')
|
|
|
|
|
|
|
|
|
|
desc "generate js from jsx"
|
|
|
|
|
task :js do
|
2015-06-15 19:56:17 +08:00
|
|
|
system "cp ../node_modules/babel/node_modules/babel-core/browser.min.js ./js/babel-browser.min.js"
|
2015-05-14 02:08:45 +08:00
|
|
|
system "../node_modules/.bin/babel _js --out-dir=js"
|
2013-05-30 03:46:11 +08:00
|
|
|
end
|
|
|
|
|
|
2014-08-13 13:44:18 +08:00
|
|
|
desc "watch js"
|
2013-09-19 01:40:12 +08:00
|
|
|
task :watch do
|
2015-05-14 02:08:45 +08:00
|
|
|
Process.spawn "../node_modules/.bin/babel _js --out-dir=js --watch"
|
2013-05-30 03:46:11 +08:00
|
|
|
Process.waitall
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
desc "update version to match ../package.json"
|
|
|
|
|
task :update_version do
|
|
|
|
|
react_version = JSON.parse(File.read('../package.json'))['version']
|
|
|
|
|
site_config = YAML.load_file('_config.yml')
|
2013-05-31 05:42:51 +08:00
|
|
|
if site_config['react_version'] != react_version
|
|
|
|
|
site_config['react_version'] = react_version
|
|
|
|
|
File.open('_config.yml', 'w+') { |f| f.write(site_config.to_yaml) }
|
|
|
|
|
end
|
2013-05-30 03:46:11 +08:00
|
|
|
end
|
|
|
|
|
|
2016-02-11 04:04:20 +08:00
|
|
|
desc "update SRI hashes"
|
|
|
|
|
task :update_hashes do
|
|
|
|
|
map = {
|
2016-02-20 03:39:42 +08:00
|
|
|
'react.js' => 'dev',
|
|
|
|
|
'react.min.js' => 'prod',
|
|
|
|
|
'react-with-addons.js' => 'addons_dev',
|
|
|
|
|
'react-with-addons.min.js' => 'addons_prod',
|
|
|
|
|
'react-dom.js' => 'dom_dev',
|
|
|
|
|
'react-dom.min.js' => 'dom_prod',
|
|
|
|
|
'react-dom-server.js' => 'dom_server_dev',
|
|
|
|
|
'react-dom-server.min.js' => 'dom_server_prod'
|
2016-02-11 04:04:20 +08:00
|
|
|
}
|
|
|
|
|
site_config = YAML.load_file('_config.yml')
|
|
|
|
|
map.each do |file, key|
|
|
|
|
|
site_config['react_hashes'][key] = `openssl dgst -sha384 -binary ../../react-bower/#{file} | openssl base64 -A`
|
|
|
|
|
end
|
|
|
|
|
File.open('_config.yml', 'w+') { |f| f.write(site_config.to_yaml) }
|
|
|
|
|
end
|
|
|
|
|
|
2014-08-14 03:24:44 +08:00
|
|
|
desc "update acknowledgements list"
|
|
|
|
|
task :update_acknowledgements do
|
|
|
|
|
authors = File.readlines('../AUTHORS').map {|author| author.gsub(/ <.*\n/,'')}
|
|
|
|
|
# split into cols here because nobody knows how to use liquid
|
|
|
|
|
# need to to_f because ruby will keep slice_size as int and round on its own
|
|
|
|
|
slice_size = (authors.size / 3.to_f).ceil
|
|
|
|
|
cols = authors.each_slice(slice_size).to_a
|
|
|
|
|
File.open('_data/acknowledgements.yml', 'w+') { |f| f.write(cols.to_yaml) }
|
|
|
|
|
end
|
|
|
|
|
|
2013-05-30 03:46:11 +08:00
|
|
|
desc "build into ../../react-gh-pages"
|
2013-09-19 01:40:12 +08:00
|
|
|
task :release => [:update_version, :default] do
|
2013-05-30 03:46:11 +08:00
|
|
|
system "jekyll build -d ../../react-gh-pages"
|
|
|
|
|
end
|
|
|
|
|
|
2014-08-13 13:44:18 +08:00
|
|
|
task :default => [:js]
|