jmettraux / rufus-treechecker

checking ruby sexp trees [before eval()], raise security error if excluded code pattern spotted

This URL has Read+Write access

jmettraux (author)
Mon May 11 22:54:46 -0700 2009
commit  c27b5fa7e2bcb81262f619496c84a76660ad7eef
tree    cf248d3d378eb29cffa7af323f8b87f1d48f504b
parent  845820d87f1abf1db3e9a6f791727147c36725b3
rufus-treechecker / Rakefile
100644 122 lines (92 sloc) 2.354 kb
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
require 'rubygems'
 
require 'rake'
require 'rake/clean'
require 'rake/packagetask'
require 'rake/gempackagetask'
require 'rake/testtask'
 
#require 'rake/rdoctask'
require 'hanna/rdoctask'
 
require 'lib/rufus/treechecker' # Rufus::TreeChecker::VERSION
 
#
# GEM SPEC
 
spec = Gem::Specification.new do |s|
 
  s.name = "rufus-treechecker"
  s.version = Rufus::TreeChecker::VERSION
  s.authors = [ "John Mettraux" ]
  s.email = "john at openwfe dot org"
  s.homepage = "http://rufus.rubyforge.org/rufus-treechecker"
  s.platform = Gem::Platform::RUBY
  s.summary = "checking ruby code before eval()"
  #s.license = "MIT"
  s.rubyforge_project = "rufus"
 
  s.require_path = "lib"
  #s.autorequire = "rufus-whatever"
  s.test_file = "test/test.rb"
  s.has_rdoc = true
  s.extra_rdoc_files = [ 'README.txt' ]
 
  [ 'ruby_parser' ].each do |d|
    s.requirements << d
    s.add_dependency d
  end
 
  files = FileList[ "{bin,docs,lib,test}/**/*" ]
  files.exclude "html"
  #files.exclude "extras"
  s.files = files.to_a
end
 
#
# tasks
 
CLEAN.include('pkg', 'html')
 
task :default => [ :clean, :repackage ]
 
 
#
# TESTING
 
Rake::TestTask.new(:test) do |t|
  t.libs << 'test'
  t.test_files = FileList['test/test.rb']
  t.verbose = true
end
 
#
# PACKAGING
 
Rake::GemPackageTask.new(spec) do |pkg|
  #pkg.need_tar = true
end
 
Rake::PackageTask.new("rufus-treechecker", Rufus::TreeChecker::VERSION) do |pkg|
  pkg.need_zip = true
  pkg.package_files = FileList[
    'Rakefile',
    '*.txt',
    'lib/**/*',
    'test/**/*'
  ].to_a
  #pkg.package_files.delete("MISC.txt")
  class << pkg
    def package_name
      "#{@name}-#{@version}-src"
    end
  end
end
 
#
# DOCUMENTATION
 
Rake::RDocTask.new do |rd|
 
  rd.main = 'README.txt'
  rd.rdoc_dir = 'html/rufus-treechecker'
  rd.rdoc_files.include(
    'README.txt',
    'CHANGELOG.txt',
    'LICENSE.txt',
    'CREDITS.txt',
    'lib/**/*.rb')
  #rd.rdoc_files.exclude('lib/tokyotyrant.rb')
  rd.title = 'rufus-treechecker rdoc'
  rd.options << '-N' # line numbers
  rd.options << '-S' # inline source
end
 
task :rrdoc => :rdoc do
  FileUtils.cp('doc/rdoc-style.css', 'html/rufus-treechecker/')
end
 
 
#
# WEBSITE
 
task :upload_website => [ :clean, :rrdoc ] do
 
  account = 'jmettraux@rubyforge.org'
  webdir = '/var/www/gforge-projects/rufus'
 
  sh "rsync -azv -e ssh html/rufus-treechecker #{account}:#{webdir}/"
end