root/platform/tdiary/Rakefile @ 5288

Revision 5288, 2.4 kB (checked in by drry, 5 years ago)

platform/tdiary/Rakefile:

  • 他の既定値に合わせて desc の先頭を大文字にしました。
  • test_files から pattern、ruby_opts から libs へそれぞれ変更しました。
  • ほか
Line 
1# Rakefile for building tdiary-conrib package
2require 'rake/packagetask'
3
4package = {
5  :name         => 'tdiary-contrib',
6  :root         => File.expand_path(File.dirname(__FILE__)),
7  :include_dirs => %w[doc filter lib misc plugin spec test util].map{|d| File.join d, '**', '*' },
8  :binary_ext   => %w[swf].map{|ext| ".#{ext}" },
9}
10package[:pkgdir] = File.join package[:root], 'package'
11package[:rev]    = 'r' << `svnversion --no-newline --committed #{package[:root]}`[/\d+[MS]{0,2}$/]
12package.freeze
13
14desc 'Update source and packaging'
15task :default => [:update, :package, :clean]
16
17desc 'Run all specs'
18task :spec do
19  require 'rake'
20  require 'spec/rake/spectask'
21  Spec::Rake::SpecTask.new do |t|
22    t.spec_files = FileList[File.join('spec', '**', '*_spec.rb')]
23    t.spec_opts  = ['--options', File.join('spec', 'spec.opts')]
24  end
25end
26
27desc 'Run all tests'
28task :test do
29  require 'rake/testtask'
30  Rake::TestTask.new do |t|
31    t.libs << File.join(package[:root], 'plugin')
32    t.pattern = File.join 'test', '**', '*_test.rb'
33  end
34end
35
36desc 'Update files from Subversion Repository'
37task :update do |t|
38  sh 'svn', 'update', package[:root]
39end
40
41pkg = Rake::PackageTask.new(package[:name], package[:rev]) do |p|
42  p.package_dir = package[:pkgdir]
43  p.package_files.include(package[:include_dirs])
44  p.need_tar_gz  = true
45  p.need_tar_bz2 = false
46end
47
48desc 'Convert source encoding from UTF-8 to EUC-JP'
49task :to_euc => pkg.package_dir_path
50file pkg.package_dir_path do |t|
51  require 'shell'
52  t.prerequisites.each do |f|
53    filename = File.join pkg.package_dir_path, f
54    # exclude directories and binary files
55    next if File.ftype(filename) != 'file' ||
56            package[:binary_ext].include?(File.extname(filename))
57
58    case
59    when Shell.new.find_system_command('nkf')
60      sh "nkf -O --euc #{filename} #{filename}.tmp && " <<
61         "touch -m -r #{filename} #{filename}.tmp && "  <<
62         "mv #{filename}.tmp #{filename}"
63    when Shell.new.find_system_command('iconv')
64      # use iconv instead of nkf in the following another way...
65      sh <<-EOS
66        iconv --from-code=utf-8 --to-code=euc-jp --output #{filename}{.tmp,} && \
67        touch -m -r #{filename}{,.tmp} && \
68        mv #{filename}{.tmp,}
69      EOS
70    #else
71    # ... or require 'nkf', 'iconv'
72    end
73  end
74  touch t.name
75end
76
77desc 'Clean package files'
78task :clean do
79  rm_rf File.join(package[:pkgdir], "#{package[:name]}-#{package[:rev]}")
80end
81
Note: See TracBrowser for help on using the browser.