rake 10.5.0 → 13.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/macos.yml +22 -0
- data/.github/workflows/ubuntu-rvm.yml +28 -0
- data/.github/workflows/ubuntu.yml +20 -0
- data/.github/workflows/windows.yml +20 -0
- data/CONTRIBUTING.rdoc +13 -8
- data/Gemfile +10 -0
- data/History.rdoc +1997 -288
- data/README.rdoc +27 -11
- data/Rakefile +25 -65
- data/bin/bundle +105 -0
- data/bin/console +7 -0
- data/bin/rake +20 -24
- data/bin/rdoc +29 -0
- data/bin/rubocop +29 -0
- data/bin/setup +6 -0
- data/doc/jamis.rb +1 -0
- data/doc/rake.1 +139 -124
- data/doc/rakefile.rdoc +2 -4
- data/exe/rake +27 -0
- data/lib/rake/application.rb +124 -90
- data/lib/rake/backtrace.rb +3 -2
- data/lib/rake/clean.rb +7 -5
- data/lib/rake/cloneable.rb +1 -0
- data/lib/rake/cpu_counter.rb +10 -28
- data/lib/rake/default_loader.rb +1 -0
- data/lib/rake/dsl_definition.rb +5 -11
- data/lib/rake/early_time.rb +1 -0
- data/lib/rake/ext/core.rb +1 -0
- data/lib/rake/ext/string.rb +22 -21
- data/lib/rake/file_creation_task.rb +4 -3
- data/lib/rake/file_list.rb +34 -27
- data/lib/rake/file_task.rb +12 -4
- data/lib/rake/file_utils.rb +38 -32
- data/lib/rake/file_utils_ext.rb +8 -18
- data/lib/rake/invocation_chain.rb +1 -0
- data/lib/rake/invocation_exception_mixin.rb +1 -0
- data/lib/rake/late_time.rb +2 -1
- data/lib/rake/linked_list.rb +24 -15
- data/lib/rake/loaders/makefile.rb +5 -4
- data/lib/rake/multi_task.rb +2 -1
- data/lib/rake/name_space.rb +1 -1
- data/lib/rake/packagetask.rb +40 -17
- data/lib/rake/phony.rb +2 -1
- data/lib/rake/private_reader.rb +1 -0
- data/lib/rake/promise.rb +13 -12
- data/lib/rake/pseudo_status.rb +1 -0
- data/lib/rake/rake_module.rb +30 -1
- data/lib/rake/rake_test_loader.rb +18 -13
- data/lib/rake/rule_recursion_overflow_error.rb +2 -2
- data/lib/rake/scope.rb +3 -2
- data/lib/rake/task.rb +82 -31
- data/lib/rake/task_argument_error.rb +1 -0
- data/lib/rake/task_arguments.rb +15 -4
- data/lib/rake/task_manager.rb +54 -30
- data/lib/rake/tasklib.rb +2 -14
- data/lib/rake/testtask.rb +39 -28
- data/lib/rake/thread_history_display.rb +4 -3
- data/lib/rake/thread_pool.rb +16 -17
- data/lib/rake/trace_output.rb +2 -1
- data/lib/rake/version.rb +4 -1
- data/lib/rake/win32.rb +10 -15
- data/lib/rake.rb +35 -43
- data/rake.gemspec +43 -0
- metadata +33 -216
- data/.autotest +0 -7
- data/.rubocop.yml +0 -27
- data/.togglerc +0 -7
- data/Manifest.txt +0 -166
- data/doc/release_notes/rake-0.4.14.rdoc +0 -23
- data/doc/release_notes/rake-0.4.15.rdoc +0 -35
- data/doc/release_notes/rake-0.5.0.rdoc +0 -53
- data/doc/release_notes/rake-0.5.3.rdoc +0 -78
- data/doc/release_notes/rake-0.5.4.rdoc +0 -46
- data/doc/release_notes/rake-0.6.0.rdoc +0 -141
- data/doc/release_notes/rake-0.7.0.rdoc +0 -119
- data/doc/release_notes/rake-0.7.1.rdoc +0 -59
- data/doc/release_notes/rake-0.7.2.rdoc +0 -121
- data/doc/release_notes/rake-0.7.3.rdoc +0 -47
- data/doc/release_notes/rake-0.8.0.rdoc +0 -114
- data/doc/release_notes/rake-0.8.2.rdoc +0 -165
- data/doc/release_notes/rake-0.8.3.rdoc +0 -112
- data/doc/release_notes/rake-0.8.4.rdoc +0 -147
- data/doc/release_notes/rake-0.8.5.rdoc +0 -53
- data/doc/release_notes/rake-0.8.6.rdoc +0 -37
- data/doc/release_notes/rake-0.8.7.rdoc +0 -55
- data/doc/release_notes/rake-0.9.0.rdoc +0 -112
- data/doc/release_notes/rake-0.9.1.rdoc +0 -52
- data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
- data/doc/release_notes/rake-0.9.2.rdoc +0 -49
- data/doc/release_notes/rake-0.9.3.rdoc +0 -102
- data/doc/release_notes/rake-0.9.4.rdoc +0 -60
- data/doc/release_notes/rake-0.9.5.rdoc +0 -55
- data/doc/release_notes/rake-0.9.6.rdoc +0 -64
- data/doc/release_notes/rake-10.0.0.rdoc +0 -178
- data/doc/release_notes/rake-10.0.1.rdoc +0 -58
- data/doc/release_notes/rake-10.0.2.rdoc +0 -53
- data/doc/release_notes/rake-10.0.3.rdoc +0 -191
- data/doc/release_notes/rake-10.1.0.rdoc +0 -61
- data/lib/rake/alt_system.rb +0 -110
- data/lib/rake/contrib/.document +0 -1
- data/lib/rake/contrib/compositepublisher.rb +0 -21
- data/lib/rake/contrib/ftptools.rb +0 -137
- data/lib/rake/contrib/publisher.rb +0 -81
- data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
- data/lib/rake/contrib/sshpublisher.rb +0 -61
- data/lib/rake/contrib/sys.rb +0 -4
- data/lib/rake/ext/module.rb +0 -2
- data/lib/rake/ext/pathname.rb +0 -25
- data/lib/rake/ext/time.rb +0 -18
- data/lib/rake/gempackagetask.rb +0 -4
- data/lib/rake/pathmap.rb +0 -3
- data/lib/rake/rdoctask.rb +0 -4
- data/lib/rake/ruby182_test_unit_fix.rb +0 -29
- data/lib/rake/runtest.rb +0 -27
- data/rakelib/publish.rake +0 -20
- data/rakelib/test_times.rake +0 -25
- data/test/file_creation.rb +0 -34
- data/test/helper.rb +0 -129
- data/test/support/rakefile_definitions.rb +0 -478
- data/test/support/ruby_runner.rb +0 -34
- data/test/test_private_reader.rb +0 -42
- data/test/test_rake.rb +0 -40
- data/test/test_rake_application.rb +0 -643
- data/test/test_rake_application_options.rb +0 -468
- data/test/test_rake_backtrace.rb +0 -119
- data/test/test_rake_clean.rb +0 -61
- data/test/test_rake_cpu_counter.rb +0 -68
- data/test/test_rake_definitions.rb +0 -84
- data/test/test_rake_directory_task.rb +0 -76
- data/test/test_rake_dsl.rb +0 -40
- data/test/test_rake_early_time.rb +0 -31
- data/test/test_rake_extension.rb +0 -59
- data/test/test_rake_file_creation_task.rb +0 -56
- data/test/test_rake_file_list.rb +0 -670
- data/test/test_rake_file_list_path_map.rb +0 -8
- data/test/test_rake_file_task.rb +0 -197
- data/test/test_rake_file_utils.rb +0 -314
- data/test/test_rake_ftp_file.rb +0 -74
- data/test/test_rake_functional.rb +0 -482
- data/test/test_rake_invocation_chain.rb +0 -64
- data/test/test_rake_late_time.rb +0 -18
- data/test/test_rake_linked_list.rb +0 -84
- data/test/test_rake_makefile_loader.rb +0 -46
- data/test/test_rake_multi_task.rb +0 -64
- data/test/test_rake_name_space.rb +0 -57
- data/test/test_rake_package_task.rb +0 -79
- data/test/test_rake_path_map.rb +0 -168
- data/test/test_rake_path_map_explode.rb +0 -34
- data/test/test_rake_path_map_partial.rb +0 -18
- data/test/test_rake_pathname_extensions.rb +0 -15
- data/test/test_rake_pseudo_status.rb +0 -21
- data/test/test_rake_rake_test_loader.rb +0 -20
- data/test/test_rake_reduce_compat.rb +0 -26
- data/test/test_rake_require.rb +0 -40
- data/test/test_rake_rules.rb +0 -388
- data/test/test_rake_scope.rb +0 -44
- data/test/test_rake_task.rb +0 -393
- data/test/test_rake_task_argument_parsing.rb +0 -119
- data/test/test_rake_task_arguments.rb +0 -127
- data/test/test_rake_task_lib.rb +0 -9
- data/test/test_rake_task_manager.rb +0 -178
- data/test/test_rake_task_manager_argument_resolution.rb +0 -19
- data/test/test_rake_task_with_arguments.rb +0 -172
- data/test/test_rake_test_task.rb +0 -146
- data/test/test_rake_thread_pool.rb +0 -145
- data/test/test_rake_top_level_functions.rb +0 -71
- data/test/test_rake_win32.rb +0 -72
- data/test/test_thread_history_display.rb +0 -101
- data/test/test_trace_output.rb +0 -52
@@ -1,61 +0,0 @@
|
|
1
|
-
= Rake 10.1.0 Released
|
2
|
-
|
3
|
-
== Changes in Version 10.1
|
4
|
-
|
5
|
-
=== New Features
|
6
|
-
|
7
|
-
* Add support for variable length task argument lists. If more actual
|
8
|
-
arguments are supplied than named arguments, then the extra
|
9
|
-
arguments values will be in args.extras.
|
10
|
-
|
11
|
-
* Application name is not displayed in the help banner. (Previously
|
12
|
-
"rake" was hardcoded, now rake-based applications can display their
|
13
|
-
own names).
|
14
|
-
|
15
|
-
=== Bug Fixes
|
16
|
-
|
17
|
-
Bug fixes include:
|
18
|
-
|
19
|
-
* Fix backtrace suppression issues.
|
20
|
-
|
21
|
-
* Rules now explicit get task arguments passed to them.
|
22
|
-
|
23
|
-
* Rename FileList#exclude? to FileList#exclude_from_list? to avoid
|
24
|
-
conflict with new Rails method.
|
25
|
-
|
26
|
-
* Clean / Clobber tasks now report failure to remove files.
|
27
|
-
|
28
|
-
* Plus heaps of internal code cleanup.
|
29
|
-
|
30
|
-
== What is Rake
|
31
|
-
|
32
|
-
Rake is a build tool similar to the make program in many ways. But
|
33
|
-
instead of cryptic make recipes, Rake uses standard Ruby code to
|
34
|
-
declare tasks and dependencies. You have the full power of a modern
|
35
|
-
scripting language built right into your build tool.
|
36
|
-
|
37
|
-
== Availability
|
38
|
-
|
39
|
-
The easiest way to get and install rake is via RubyGems ...
|
40
|
-
|
41
|
-
gem install rake (you may need root/admin privileges)
|
42
|
-
|
43
|
-
Otherwise, you can get it from the more from GitHub:
|
44
|
-
|
45
|
-
GitHub:: git://github.com/jimweirich/rake.git
|
46
|
-
|
47
|
-
== Thanks
|
48
|
-
|
49
|
-
As usual, it was input from users that drove a lot of these changes.
|
50
|
-
The following people contributed patches, made suggestions or made
|
51
|
-
otherwise helpful comments. Thanks to ...
|
52
|
-
|
53
|
-
* Michael Nikitochkin (general code cleanup)
|
54
|
-
* Vipul A M (general code cleanup)
|
55
|
-
* Dennis Bell (variable length task argument lists)
|
56
|
-
* Jacob Swanner (rules arguments)
|
57
|
-
* Rafael Rosa Fu (documentation typo)
|
58
|
-
* Stuart Nelson (install.rb fixes)
|
59
|
-
* Lee Hambley (application name in help banner)
|
60
|
-
|
61
|
-
-- Jim Weirich
|
data/lib/rake/alt_system.rb
DELETED
@@ -1,110 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (c) 2008 James M. Lawrence
|
3
|
-
#
|
4
|
-
# Permission is hereby granted, free of charge, to any person
|
5
|
-
# obtaining a copy of this software and associated documentation files
|
6
|
-
# (the "Software"), to deal in the Software without restriction,
|
7
|
-
# including without limitation the rights to use, copy, modify, merge,
|
8
|
-
# publish, distribute, sublicense, and/or sell copies of the Software,
|
9
|
-
# and to permit persons to whom the Software is furnished to do so,
|
10
|
-
# subject to the following conditions:
|
11
|
-
#
|
12
|
-
# The above copyright notice and this permission notice shall be
|
13
|
-
# included in all copies or substantial portions of the Software.
|
14
|
-
#
|
15
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
19
|
-
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
20
|
-
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
-
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
-
# SOFTWARE.
|
23
|
-
#
|
24
|
-
|
25
|
-
require 'rbconfig'
|
26
|
-
|
27
|
-
##
|
28
|
-
# Alternate implementations of system() and backticks `` on Windows
|
29
|
-
# for ruby-1.8 and earlier.
|
30
|
-
#--
|
31
|
-
# TODO: Remove in Rake 11
|
32
|
-
|
33
|
-
module Rake::AltSystem # :nodoc: all
|
34
|
-
WINDOWS = RbConfig::CONFIG["host_os"] =~
|
35
|
-
%r!(msdos|mswin|djgpp|mingw|[Ww]indows)!
|
36
|
-
|
37
|
-
class << self
|
38
|
-
def define_module_function(name, &block)
|
39
|
-
define_method(name, &block)
|
40
|
-
module_function(name)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
if WINDOWS && RUBY_VERSION < "1.9.0"
|
45
|
-
RUNNABLE_EXTS = %w[com exe bat cmd]
|
46
|
-
RUNNABLE_PATTERN = %r!\.(#{RUNNABLE_EXTS.join('|')})\Z!i
|
47
|
-
|
48
|
-
define_module_function :kernel_system, &Kernel.method(:system)
|
49
|
-
define_module_function :kernel_backticks, &Kernel.method(:'`')
|
50
|
-
|
51
|
-
module_function
|
52
|
-
|
53
|
-
def repair_command(cmd)
|
54
|
-
"call " + (
|
55
|
-
if cmd =~ %r!\A\s*\".*?\"!
|
56
|
-
# already quoted
|
57
|
-
cmd
|
58
|
-
elsif match = cmd.match(%r!\A\s*(\S+)!)
|
59
|
-
if match[1] =~ %r!/!
|
60
|
-
# avoid x/y.bat interpretation as x with option /y
|
61
|
-
%Q!"#{match[1]}"! + match.post_match
|
62
|
-
else
|
63
|
-
# a shell command will fail if quoted
|
64
|
-
cmd
|
65
|
-
end
|
66
|
-
else
|
67
|
-
# empty or whitespace
|
68
|
-
cmd
|
69
|
-
end
|
70
|
-
)
|
71
|
-
end
|
72
|
-
|
73
|
-
def find_runnable(file)
|
74
|
-
if file =~ RUNNABLE_PATTERN
|
75
|
-
file
|
76
|
-
else
|
77
|
-
RUNNABLE_EXTS.each { |ext|
|
78
|
-
test = "#{file}.#{ext}"
|
79
|
-
return test if File.exist?(test)
|
80
|
-
}
|
81
|
-
nil
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
def system(cmd, *args)
|
86
|
-
repaired = (
|
87
|
-
if args.empty?
|
88
|
-
[repair_command(cmd)]
|
89
|
-
elsif runnable = find_runnable(cmd)
|
90
|
-
[File.expand_path(runnable), *args]
|
91
|
-
else
|
92
|
-
# non-existent file
|
93
|
-
[cmd, *args]
|
94
|
-
end
|
95
|
-
)
|
96
|
-
kernel_system(*repaired)
|
97
|
-
end
|
98
|
-
|
99
|
-
def backticks(cmd)
|
100
|
-
kernel_backticks(repair_command(cmd))
|
101
|
-
end
|
102
|
-
|
103
|
-
define_module_function :'`', &method(:backticks)
|
104
|
-
else
|
105
|
-
# Non-Windows or ruby-1.9+: same as Kernel versions
|
106
|
-
define_module_function :system, &Kernel.method(:system)
|
107
|
-
define_module_function :backticks, &Kernel.method(:'`')
|
108
|
-
define_module_function :'`', &Kernel.method(:'`')
|
109
|
-
end
|
110
|
-
end
|
data/lib/rake/contrib/.document
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Rake
|
2
|
-
|
3
|
-
# Manage several publishers as a single entity.
|
4
|
-
class CompositePublisher
|
5
|
-
def initialize
|
6
|
-
@publishers = []
|
7
|
-
end
|
8
|
-
|
9
|
-
# Add a publisher to the composite.
|
10
|
-
def add(pub)
|
11
|
-
@publishers << pub
|
12
|
-
end
|
13
|
-
|
14
|
-
# Upload all the individual publishers.
|
15
|
-
def upload
|
16
|
-
@publishers.each { |p| p.upload }
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
|
@@ -1,137 +0,0 @@
|
|
1
|
-
# = Tools for FTP uploading.
|
2
|
-
#
|
3
|
-
# This file is still under development and is not released for general
|
4
|
-
# use.
|
5
|
-
|
6
|
-
require 'date'
|
7
|
-
require 'net/ftp'
|
8
|
-
require 'rake/file_list'
|
9
|
-
|
10
|
-
module Rake # :nodoc:
|
11
|
-
|
12
|
-
class FtpFile # :nodoc: all
|
13
|
-
attr_reader :name, :size, :owner, :group, :time
|
14
|
-
|
15
|
-
def self.date
|
16
|
-
@date_class ||= Date
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.time
|
20
|
-
@time_class ||= Time
|
21
|
-
end
|
22
|
-
|
23
|
-
def initialize(path, entry)
|
24
|
-
@path = path
|
25
|
-
@mode, _, @owner, @group, size, d1, d2, d3, @name = entry.split(' ')
|
26
|
-
@size = size.to_i
|
27
|
-
@time = determine_time(d1, d2, d3)
|
28
|
-
end
|
29
|
-
|
30
|
-
def path
|
31
|
-
File.join(@path, @name)
|
32
|
-
end
|
33
|
-
|
34
|
-
def directory?
|
35
|
-
@mode[0] == ?d
|
36
|
-
end
|
37
|
-
|
38
|
-
def mode
|
39
|
-
parse_mode(@mode)
|
40
|
-
end
|
41
|
-
|
42
|
-
def symlink?
|
43
|
-
@mode[0] == ?l
|
44
|
-
end
|
45
|
-
|
46
|
-
private # --------------------------------------------------------
|
47
|
-
|
48
|
-
def parse_mode(m)
|
49
|
-
result = 0
|
50
|
-
(1..9).each do |i|
|
51
|
-
result = 2 * result + ((m[i] == ?-) ? 0 : 1)
|
52
|
-
end
|
53
|
-
result
|
54
|
-
end
|
55
|
-
|
56
|
-
def determine_time(d1, d2, d3)
|
57
|
-
now = self.class.time.now
|
58
|
-
if /:/ !~ d3
|
59
|
-
result = Time.parse("#{d1} #{d2} #{d3}")
|
60
|
-
else
|
61
|
-
result = Time.parse("#{d1} #{d2} #{now.year} #{d3}")
|
62
|
-
result = Time.parse("#{d1} #{d2} #{now.year - 1} #{d3}") if
|
63
|
-
result > now
|
64
|
-
end
|
65
|
-
result
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
##
|
70
|
-
# Manage the uploading of files to an FTP account.
|
71
|
-
class FtpUploader # :nodoc:
|
72
|
-
|
73
|
-
# Log uploads to standard output when true.
|
74
|
-
attr_accessor :verbose
|
75
|
-
|
76
|
-
class << FtpUploader
|
77
|
-
# Create an uploader and pass it to the given block as +up+.
|
78
|
-
# When the block is complete, close the uploader.
|
79
|
-
def connect(path, host, account, password)
|
80
|
-
up = self.new(path, host, account, password)
|
81
|
-
begin
|
82
|
-
yield(up)
|
83
|
-
ensure
|
84
|
-
up.close
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
# Create an FTP uploader targeting the directory +path+ on +host+
|
90
|
-
# using the given account and password. +path+ will be the root
|
91
|
-
# path of the uploader.
|
92
|
-
def initialize(path, host, account, password)
|
93
|
-
@created = Hash.new
|
94
|
-
@path = path
|
95
|
-
@ftp = Net::FTP.new(host, account, password)
|
96
|
-
makedirs(@path)
|
97
|
-
@ftp.chdir(@path)
|
98
|
-
end
|
99
|
-
|
100
|
-
# Create the directory +path+ in the uploader root path.
|
101
|
-
def makedirs(path)
|
102
|
-
route = []
|
103
|
-
File.split(path).each do |dir|
|
104
|
-
route << dir
|
105
|
-
current_dir = File.join(route)
|
106
|
-
if @created[current_dir].nil?
|
107
|
-
@created[current_dir] = true
|
108
|
-
$stderr.puts "Creating Directory #{current_dir}" if @verbose
|
109
|
-
@ftp.mkdir(current_dir) rescue nil
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
# Upload all files matching +wildcard+ to the uploader's root
|
115
|
-
# path.
|
116
|
-
def upload_files(wildcard)
|
117
|
-
FileList.glob(wildcard).each do |fn|
|
118
|
-
upload(fn)
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
# Close the uploader.
|
123
|
-
def close
|
124
|
-
@ftp.close
|
125
|
-
end
|
126
|
-
|
127
|
-
private # --------------------------------------------------------
|
128
|
-
|
129
|
-
# Upload a single file to the uploader's root path.
|
130
|
-
def upload(file)
|
131
|
-
$stderr.puts "Uploading #{file}" if @verbose
|
132
|
-
dir = File.dirname(file)
|
133
|
-
makedirs(dir)
|
134
|
-
@ftp.putbinaryfile(file, file) unless File.directory?(file)
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
# Copyright 2003-2010 by Jim Weirich (jim.weirich@gmail.com)
|
2
|
-
# All rights reserved.
|
3
|
-
|
4
|
-
# :stopdoc:
|
5
|
-
|
6
|
-
# Configuration information about an upload host system.
|
7
|
-
# name :: Name of host system.
|
8
|
-
# webdir :: Base directory for the web information for the
|
9
|
-
# application. The application name (APP) is appended to
|
10
|
-
# this directory before using.
|
11
|
-
# pkgdir :: Directory on the host system where packages can be
|
12
|
-
# placed.
|
13
|
-
HostInfo = Struct.new(:name, :webdir, :pkgdir)
|
14
|
-
|
15
|
-
# :startdoc:
|
16
|
-
|
17
|
-
# TODO: Move to contrib/sshpublisher
|
18
|
-
#--
|
19
|
-
# Manage several publishers as a single entity.
|
20
|
-
class CompositePublisher # :nodoc:
|
21
|
-
def initialize
|
22
|
-
@publishers = []
|
23
|
-
end
|
24
|
-
|
25
|
-
# Add a publisher to the composite.
|
26
|
-
def add(pub)
|
27
|
-
@publishers << pub
|
28
|
-
end
|
29
|
-
|
30
|
-
# Upload all the individual publishers.
|
31
|
-
def upload
|
32
|
-
@publishers.each { |p| p.upload }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
# TODO: Remove in Rake 11, duplicated
|
37
|
-
#--
|
38
|
-
# Publish an entire directory to an existing remote directory using
|
39
|
-
# SSH.
|
40
|
-
class SshDirPublisher # :nodoc: all
|
41
|
-
def initialize(host, remote_dir, local_dir)
|
42
|
-
@host = host
|
43
|
-
@remote_dir = remote_dir
|
44
|
-
@local_dir = local_dir
|
45
|
-
end
|
46
|
-
|
47
|
-
def upload
|
48
|
-
run %{scp -rq #{@local_dir}/* #{@host}:#{@remote_dir}}
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# TODO: Remove in Rake 11, duplicated
|
53
|
-
#--
|
54
|
-
# Publish an entire directory to a fresh remote directory using SSH.
|
55
|
-
class SshFreshDirPublisher < SshDirPublisher # :nodoc: all
|
56
|
-
def upload
|
57
|
-
run %{ssh #{@host} rm -rf #{@remote_dir}} rescue nil
|
58
|
-
run %{ssh #{@host} mkdir #{@remote_dir}}
|
59
|
-
super
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
# TODO: Remove in Rake 11, duplicated
|
64
|
-
#--
|
65
|
-
# Publish a list of files to an existing remote directory.
|
66
|
-
class SshFilePublisher # :nodoc: all
|
67
|
-
# Create a publisher using the give host information.
|
68
|
-
def initialize(host, remote_dir, local_dir, *files)
|
69
|
-
@host = host
|
70
|
-
@remote_dir = remote_dir
|
71
|
-
@local_dir = local_dir
|
72
|
-
@files = files
|
73
|
-
end
|
74
|
-
|
75
|
-
# Upload the local directory to the remote directory.
|
76
|
-
def upload
|
77
|
-
@files.each do |fn|
|
78
|
-
run %{scp -q #{@local_dir}/#{fn} #{@host}:#{@remote_dir}}
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# TODO: Remove in Rake 11
|
2
|
-
|
3
|
-
require 'rake/contrib/sshpublisher'
|
4
|
-
|
5
|
-
module Rake
|
6
|
-
|
7
|
-
class RubyForgePublisher < SshDirPublisher # :nodoc: all
|
8
|
-
attr_reader :project, :proj_id, :user
|
9
|
-
|
10
|
-
def initialize(projname, user)
|
11
|
-
super(
|
12
|
-
"#{user}@rubyforge.org",
|
13
|
-
"/var/www/gforge-projects/#{projname}",
|
14
|
-
"html")
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'rake/dsl_definition'
|
2
|
-
require 'rake/contrib/compositepublisher'
|
3
|
-
|
4
|
-
module Rake
|
5
|
-
|
6
|
-
# Publish an entire directory to an existing remote directory using
|
7
|
-
# SSH.
|
8
|
-
class SshDirPublisher
|
9
|
-
include Rake::DSL
|
10
|
-
|
11
|
-
# Creates an SSH publisher which will scp all files in +local_dir+ to
|
12
|
-
# +remote_dir+ on +host+
|
13
|
-
|
14
|
-
def initialize(host, remote_dir, local_dir)
|
15
|
-
@host = host
|
16
|
-
@remote_dir = remote_dir
|
17
|
-
@local_dir = local_dir
|
18
|
-
end
|
19
|
-
|
20
|
-
# Uploads the files
|
21
|
-
|
22
|
-
def upload
|
23
|
-
sh "scp", "-rq", "#{@local_dir}/*", "#{@host}:#{@remote_dir}"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Publish an entire directory to a fresh remote directory using SSH.
|
28
|
-
class SshFreshDirPublisher < SshDirPublisher
|
29
|
-
|
30
|
-
# Uploads the files after removing the existing remote directory.
|
31
|
-
|
32
|
-
def upload
|
33
|
-
sh "ssh", @host, "rm", "-rf", @remote_dir rescue nil
|
34
|
-
sh "ssh", @host, "mkdir", @remote_dir
|
35
|
-
super
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# Publish a list of files to an existing remote directory.
|
40
|
-
class SshFilePublisher
|
41
|
-
include Rake::DSL
|
42
|
-
|
43
|
-
# Creates an SSH publisher which will scp all +files+ in +local_dir+ to
|
44
|
-
# +remote_dir+ on +host+.
|
45
|
-
|
46
|
-
def initialize(host, remote_dir, local_dir, *files)
|
47
|
-
@host = host
|
48
|
-
@remote_dir = remote_dir
|
49
|
-
@local_dir = local_dir
|
50
|
-
@files = files
|
51
|
-
end
|
52
|
-
|
53
|
-
# Uploads the files
|
54
|
-
|
55
|
-
def upload
|
56
|
-
@files.each do |fn|
|
57
|
-
sh "scp", "-q", "#{@local_dir}/#{fn}", "#{@host}:#{@remote_dir}"
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
data/lib/rake/contrib/sys.rb
DELETED
data/lib/rake/ext/module.rb
DELETED
data/lib/rake/ext/pathname.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'rake/ext/core'
|
2
|
-
require 'pathname'
|
3
|
-
|
4
|
-
class Pathname
|
5
|
-
|
6
|
-
rake_extension("ext") do
|
7
|
-
# Return a new Pathname with <tt>String#ext</tt> applied to it.
|
8
|
-
#
|
9
|
-
# This Pathname extension comes from Rake
|
10
|
-
def ext(newext='')
|
11
|
-
Pathname.new(Rake.from_pathname(self).ext(newext))
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
rake_extension("pathmap") do
|
16
|
-
# Apply the pathmap spec to the Pathname, returning a
|
17
|
-
# new Pathname with the modified paths. (See String#pathmap for
|
18
|
-
# details.)
|
19
|
-
#
|
20
|
-
# This Pathname extension comes from Rake
|
21
|
-
def pathmap(spec=nil, &block)
|
22
|
-
Pathname.new(Rake.from_pathname(self).pathmap(spec, &block))
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/lib/rake/ext/time.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Extensions to time to allow comparisons with early and late time classes.
|
3
|
-
|
4
|
-
require 'rake/early_time'
|
5
|
-
require 'rake/late_time'
|
6
|
-
|
7
|
-
if RUBY_VERSION < "1.9"
|
8
|
-
class Time # :nodoc: all
|
9
|
-
alias rake_original_time_compare :<=>
|
10
|
-
def <=>(other)
|
11
|
-
if Rake::EarlyTime === other || Rake::LateTime === other
|
12
|
-
- other.<=>(self)
|
13
|
-
else
|
14
|
-
rake_original_time_compare(other)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/lib/rake/gempackagetask.rb
DELETED
data/lib/rake/pathmap.rb
DELETED
data/lib/rake/rdoctask.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# TODO: Remove in rake 11
|
2
|
-
|
3
|
-
# Local Rake override to fix bug in Ruby 0.8.2
|
4
|
-
module Test # :nodoc:
|
5
|
-
# Local Rake override to fix bug in Ruby 0.8.2
|
6
|
-
module Unit # :nodoc:
|
7
|
-
# Local Rake override to fix bug in Ruby 0.8.2
|
8
|
-
module Collector # :nodoc:
|
9
|
-
# Local Rake override to fix bug in Ruby 0.8.2
|
10
|
-
class Dir # :nodoc:
|
11
|
-
undef collect_file
|
12
|
-
def collect_file(name, suites, already_gathered) # :nodoc:
|
13
|
-
dir = File.dirname(File.expand_path(name))
|
14
|
-
$:.unshift(dir) unless $:.first == dir
|
15
|
-
if @req
|
16
|
-
@req.require(name)
|
17
|
-
else
|
18
|
-
require(name)
|
19
|
-
end
|
20
|
-
find_test_cases(already_gathered).each do |t|
|
21
|
-
add_suite(suites, t.suite)
|
22
|
-
end
|
23
|
-
ensure
|
24
|
-
$:.delete_at $:.rindex(dir)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
data/lib/rake/runtest.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'test/unit/assertions'
|
3
|
-
require 'rake/file_list'
|
4
|
-
|
5
|
-
module Rake
|
6
|
-
include Test::Unit::Assertions
|
7
|
-
|
8
|
-
##
|
9
|
-
# Deprecated way of running tests in process, but only for Test::Unit.
|
10
|
-
#--
|
11
|
-
# TODO: Remove in rake 11
|
12
|
-
|
13
|
-
def run_tests(pattern='test/test*.rb', log_enabled=false) # :nodoc:
|
14
|
-
FileList.glob(pattern).each do |fn|
|
15
|
-
$stderr.puts fn if log_enabled
|
16
|
-
begin
|
17
|
-
require fn
|
18
|
-
rescue Exception => ex
|
19
|
-
$stderr.puts "Error in #{fn}: #{ex.message}"
|
20
|
-
$stderr.puts ex.backtrace
|
21
|
-
assert false
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
extend self
|
27
|
-
end
|
data/rakelib/publish.rake
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# Optional publish task for Rake
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'rake/contrib/sshpublisher'
|
5
|
-
require 'rake/contrib/rubyforgepublisher'
|
6
|
-
|
7
|
-
publisher = Rake::SshDirPublisher.new(
|
8
|
-
'linode',
|
9
|
-
'htdocs/software/rake',
|
10
|
-
'html')
|
11
|
-
|
12
|
-
desc "Publish the Documentation to RubyForge."
|
13
|
-
task :publish => [:rdoc] do
|
14
|
-
publisher.upload
|
15
|
-
end
|
16
|
-
|
17
|
-
rescue LoadError => ex
|
18
|
-
puts "#{ex.message} (#{ex.class})"
|
19
|
-
puts "No Publisher Task Available"
|
20
|
-
end
|
data/rakelib/test_times.rake
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
module TestTimes
|
2
|
-
def self.run(test_results, limit=0)
|
3
|
-
limit = limit.nonzero? || 10
|
4
|
-
tests = []
|
5
|
-
test_results.split(/\n/).each do |line|
|
6
|
-
if line =~ /^(.+?#[^:]+): ([0-9.]+) s: \.$/
|
7
|
-
tests << [$1, $2.to_f, line]
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
puts "#{limit} Slowest tests"
|
12
|
-
puts tests.sort_by { |item|
|
13
|
-
item[1]
|
14
|
-
}.reverse[0...limit].map { |item|
|
15
|
-
"%6.3f: %-s\n" % [item[1], item[0]]
|
16
|
-
}
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
namespace :test do
|
21
|
-
desc "Find the slowest unit tests"
|
22
|
-
task :times, [:limit] do |t, args|
|
23
|
-
TestTimes.run `rake test:units TESTOPTS='--verbose'`, args.limit.to_i
|
24
|
-
end
|
25
|
-
end
|