spline 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/spline/action_command.rb +21 -0
- data/lib/spline/install_command.rb +28 -0
- data/lib/spline/process_command.rb +20 -0
- data/lib/spline/spline_cli.rb +7 -19
- data/lib/spline/templates/action.tt +7 -0
- data/lib/spline/templates/my_first_action.tt +11 -0
- data/lib/spline/templates/my_process.tt +21 -0
- data/lib/spline/templates/my_second_action.tt +11 -0
- data/lib/spline/templates/process.tt +6 -0
- data/lib/spline/version.rb +1 -1
- data/spline.gemspec +0 -1
- metadata +9 -140
- data/vendor/bundle/ruby/2.1.0/bin/rake +0 -23
- data/vendor/bundle/ruby/2.1.0/bin/spline +0 -23
- data/vendor/bundle/ruby/2.1.0/build_info/rake-10.3.2.info +0 -1
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.autotest +0 -7
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.gemtest +0 -0
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.rubocop.yml +0 -27
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.togglerc +0 -7
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/CONTRIBUTING.rdoc +0 -34
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/History.rdoc +0 -609
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/MIT-LICENSE +0 -21
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Manifest.txt +0 -162
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/README.rdoc +0 -137
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Rakefile +0 -81
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/bin/rake +0 -33
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/alt_system.rb +0 -110
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/application.rb +0 -783
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/backtrace.rb +0 -23
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/clean.rb +0 -76
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cloneable.rb +0 -16
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/.document +0 -0
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/compositepublisher.rb +0 -21
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/ftptools.rb +0 -137
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/publisher.rb +0 -81
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/rubyforgepublisher.rb +0 -18
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sshpublisher.rb +0 -61
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sys.rb +0 -4
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cpu_counter.rb +0 -109
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/default_loader.rb +0 -14
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/dsl_definition.rb +0 -198
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/early_time.rb +0 -21
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/core.rb +0 -25
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/module.rb +0 -1
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/string.rb +0 -173
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/time.rb +0 -15
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_creation_task.rb +0 -24
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_list.rb +0 -414
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_task.rb +0 -46
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils.rb +0 -116
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils_ext.rb +0 -144
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/gempackagetask.rb +0 -4
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_chain.rb +0 -56
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_exception_mixin.rb +0 -16
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/linked_list.rb +0 -103
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/loaders/makefile.rb +0 -40
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/multi_task.rb +0 -13
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/name_space.rb +0 -38
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/packagetask.rb +0 -202
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pathmap.rb +0 -3
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/phony.rb +0 -15
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/private_reader.rb +0 -20
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/promise.rb +0 -99
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pseudo_status.rb +0 -29
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_module.rb +0 -38
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_test_loader.rb +0 -22
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rdoctask.rb +0 -4
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ruby182_test_unit_fix.rb +0 -29
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rule_recursion_overflow_error.rb +0 -20
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/runtest.rb +0 -27
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/scope.rb +0 -42
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task.rb +0 -383
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_argument_error.rb +0 -7
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_arguments.rb +0 -98
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_manager.rb +0 -310
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/tasklib.rb +0 -24
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/testtask.rb +0 -212
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_history_display.rb +0 -48
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_pool.rb +0 -164
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/trace_output.rb +0 -22
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/version.rb +0 -7
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/win32.rb +0 -56
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake.rb +0 -78
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/publish.rake +0 -20
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/test_times.rake +0 -25
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/file_creation.rb +0 -34
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/helper.rb +0 -127
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/rakefile_definitions.rb +0 -478
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/ruby_runner.rb +0 -33
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_private_reader.rb +0 -42
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake.rb +0 -40
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application.rb +0 -641
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application_options.rb +0 -466
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_backtrace.rb +0 -119
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_clean.rb +0 -55
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_cpu_counter.rb +0 -50
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_definitions.rb +0 -79
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_directory_task.rb +0 -63
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_dsl.rb +0 -40
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_early_time.rb +0 -31
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_extension.rb +0 -59
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_creation_task.rb +0 -56
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list.rb +0 -627
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list_path_map.rb +0 -8
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_task.rb +0 -186
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_utils.rb +0 -309
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_ftp_file.rb +0 -74
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_functional.rb +0 -482
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_invocation_chain.rb +0 -64
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_linked_list.rb +0 -84
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_makefile_loader.rb +0 -46
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_multi_task.rb +0 -58
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_name_space.rb +0 -57
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_package_task.rb +0 -79
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map.rb +0 -168
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_explode.rb +0 -34
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_partial.rb +0 -18
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_pseudo_status.rb +0 -21
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rake_test_loader.rb +0 -20
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_reduce_compat.rb +0 -26
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_require.rb +0 -40
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rules.rb +0 -388
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_scope.rb +0 -44
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task.rb +0 -392
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_argument_parsing.rb +0 -109
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_arguments.rb +0 -127
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_lib.rb +0 -9
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager.rb +0 -178
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager_argument_resolution.rb +0 -19
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_with_arguments.rb +0 -171
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_test_task.rb +0 -141
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_thread_pool.rb +0 -142
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_top_level_functions.rb +0 -71
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_win32.rb +0 -72
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_thread_history_display.rb +0 -101
- data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_trace_output.rb +0 -52
- data/vendor/bundle/ruby/2.1.0/specifications/rake-10.3.2.gemspec +0 -45
@@ -1,23 +0,0 @@
|
|
1
|
-
module Rake
|
2
|
-
module Backtrace # :nodoc: all
|
3
|
-
SYS_KEYS = RbConfig::CONFIG.keys.grep(/(prefix|libdir)/)
|
4
|
-
SYS_PATHS = RbConfig::CONFIG.values_at(*SYS_KEYS).uniq +
|
5
|
-
[ File.join(File.dirname(__FILE__), "..") ]
|
6
|
-
|
7
|
-
SUPPRESSED_PATHS = SYS_PATHS.
|
8
|
-
map { |s| s.gsub("\\", "/") }.
|
9
|
-
map { |f| File.expand_path(f) }.
|
10
|
-
reject { |s| s.nil? || s =~ /^ *$/ }
|
11
|
-
SUPPRESSED_PATHS_RE = SUPPRESSED_PATHS.map { |f| Regexp.quote(f) }.join("|")
|
12
|
-
SUPPRESSED_PATHS_RE << "|^org\\/jruby\\/\\w+\\.java" if
|
13
|
-
Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
|
14
|
-
|
15
|
-
SUPPRESS_PATTERN = %r!(\A(#{SUPPRESSED_PATHS_RE})|bin/rake:\d+)!i
|
16
|
-
|
17
|
-
def self.collapse(backtrace)
|
18
|
-
pattern = Rake.application.options.suppress_backtrace_pattern ||
|
19
|
-
SUPPRESS_PATTERN
|
20
|
-
backtrace.reject { |elem| elem =~ pattern }
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
# The 'rake/clean' file defines two file lists (CLEAN and CLOBBER) and
|
2
|
-
# two rake tasks (:clean and :clobber).
|
3
|
-
#
|
4
|
-
# [:clean] Clean up the project by deleting scratch files and backup
|
5
|
-
# files. Add files to the CLEAN file list to have the :clean
|
6
|
-
# target handle them.
|
7
|
-
#
|
8
|
-
# [:clobber] Clobber all generated and non-source files in a project.
|
9
|
-
# The task depends on :clean, so all the clean files will
|
10
|
-
# be deleted as well as files in the CLOBBER file list.
|
11
|
-
# The intent of this task is to return a project to its
|
12
|
-
# pristine, just unpacked state.
|
13
|
-
|
14
|
-
require 'rake'
|
15
|
-
|
16
|
-
# :stopdoc:
|
17
|
-
|
18
|
-
module Rake
|
19
|
-
module Cleaner
|
20
|
-
extend FileUtils
|
21
|
-
|
22
|
-
module_function
|
23
|
-
|
24
|
-
def cleanup_files(file_names)
|
25
|
-
file_names.each do |file_name|
|
26
|
-
cleanup(file_name)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def cleanup(file_name, opts={})
|
31
|
-
begin
|
32
|
-
rm_r file_name, opts
|
33
|
-
rescue StandardError => ex
|
34
|
-
puts "Failed to remove #{file_name}: #{ex}" unless file_already_gone?(file_name)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def file_already_gone?(file_name)
|
39
|
-
return false if File.exist?(file_name)
|
40
|
-
|
41
|
-
path = file_name
|
42
|
-
prev = nil
|
43
|
-
|
44
|
-
while path = File.dirname(path)
|
45
|
-
return false if cant_be_deleted?(path)
|
46
|
-
break if [prev, "."].include?(path)
|
47
|
-
prev = path
|
48
|
-
end
|
49
|
-
true
|
50
|
-
end
|
51
|
-
private_class_method :file_already_gone?
|
52
|
-
|
53
|
-
def cant_be_deleted?(path_name)
|
54
|
-
File.exist?(path_name) &&
|
55
|
-
(!File.readable?(path_name) || !File.executable?(path_name))
|
56
|
-
end
|
57
|
-
private_class_method :cant_be_deleted?
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
CLEAN = ::Rake::FileList["**/*~", "**/*.bak", "**/core"]
|
62
|
-
CLEAN.clear_exclude.exclude { |fn|
|
63
|
-
fn.pathmap("%f").downcase == 'core' && File.directory?(fn)
|
64
|
-
}
|
65
|
-
|
66
|
-
desc "Remove any temporary products."
|
67
|
-
task :clean do
|
68
|
-
Rake::Cleaner.cleanup_files(CLEAN)
|
69
|
-
end
|
70
|
-
|
71
|
-
CLOBBER = ::Rake::FileList.new
|
72
|
-
|
73
|
-
desc "Remove any generated file."
|
74
|
-
task :clobber => [:clean] do
|
75
|
-
Rake::Cleaner.cleanup_files(CLOBBER)
|
76
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Rake
|
2
|
-
##
|
3
|
-
# Mixin for creating easily cloned objects.
|
4
|
-
|
5
|
-
module Cloneable # :nodoc:
|
6
|
-
# The hook that invoked by 'clone' and 'dup' methods.
|
7
|
-
def initialize_copy(source)
|
8
|
-
super
|
9
|
-
source.instance_variables.each do |var|
|
10
|
-
src_value = source.instance_variable_get(var)
|
11
|
-
value = src_value.clone rescue src_value
|
12
|
-
instance_variable_set(var, value)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
File without changes
|
@@ -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
|
@@ -1,109 +0,0 @@
|
|
1
|
-
require 'rbconfig'
|
2
|
-
|
3
|
-
# TODO: replace with IO.popen using array-style arguments in Rake 11
|
4
|
-
require 'open3'
|
5
|
-
|
6
|
-
module Rake
|
7
|
-
|
8
|
-
# Based on a script at:
|
9
|
-
# http://stackoverflow.com/questions/891537/ruby-detect-number-of-cpus-installed
|
10
|
-
class CpuCounter # :nodoc: all
|
11
|
-
def self.count
|
12
|
-
new.count_with_default
|
13
|
-
end
|
14
|
-
|
15
|
-
def count_with_default(default=4)
|
16
|
-
count || default
|
17
|
-
rescue StandardError
|
18
|
-
default
|
19
|
-
end
|
20
|
-
|
21
|
-
def count
|
22
|
-
if defined?(Java::Java)
|
23
|
-
count_via_java_runtime
|
24
|
-
else
|
25
|
-
case RbConfig::CONFIG['host_os']
|
26
|
-
when /darwin9/
|
27
|
-
count_via_hwprefs_cpu_count
|
28
|
-
when /darwin/
|
29
|
-
count_via_hwprefs_thread_count || count_via_sysctl
|
30
|
-
when /linux/
|
31
|
-
count_via_cpuinfo
|
32
|
-
when /bsd/
|
33
|
-
count_via_sysctl
|
34
|
-
when /mswin|mingw/
|
35
|
-
count_via_win32
|
36
|
-
else
|
37
|
-
# Try everything
|
38
|
-
count_via_win32 ||
|
39
|
-
count_via_sysctl ||
|
40
|
-
count_via_hwprefs_thread_count ||
|
41
|
-
count_via_hwprefs_cpu_count
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def count_via_java_runtime
|
47
|
-
Java::Java.lang.Runtime.getRuntime.availableProcessors
|
48
|
-
rescue StandardError
|
49
|
-
nil
|
50
|
-
end
|
51
|
-
|
52
|
-
def count_via_win32
|
53
|
-
require 'win32ole'
|
54
|
-
wmi = WIN32OLE.connect("winmgmts://")
|
55
|
-
cpu = wmi.ExecQuery("select NumberOfCores from Win32_Processor") # TODO count hyper-threaded in this
|
56
|
-
cpu.to_enum.first.NumberOfCores
|
57
|
-
rescue StandardError, LoadError
|
58
|
-
nil
|
59
|
-
end
|
60
|
-
|
61
|
-
def count_via_cpuinfo
|
62
|
-
open('/proc/cpuinfo') { |f| f.readlines }.grep(/processor/).size
|
63
|
-
rescue StandardError
|
64
|
-
nil
|
65
|
-
end
|
66
|
-
|
67
|
-
def count_via_hwprefs_thread_count
|
68
|
-
run 'hwprefs', 'thread_count'
|
69
|
-
end
|
70
|
-
|
71
|
-
def count_via_hwprefs_cpu_count
|
72
|
-
run 'hwprefs', 'cpu_count'
|
73
|
-
end
|
74
|
-
|
75
|
-
def count_via_sysctl
|
76
|
-
run 'sysctl', '-n', 'hw.ncpu'
|
77
|
-
end
|
78
|
-
|
79
|
-
def run(command, *args)
|
80
|
-
cmd = resolve_command(command)
|
81
|
-
if cmd
|
82
|
-
Open3.popen3 cmd, *args do |inn, out, err,|
|
83
|
-
inn.close
|
84
|
-
err.read
|
85
|
-
out.read.to_i
|
86
|
-
end
|
87
|
-
else
|
88
|
-
nil
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
def resolve_command(command)
|
93
|
-
look_for_command("/usr/sbin", command) ||
|
94
|
-
look_for_command("/sbin", command) ||
|
95
|
-
in_path_command(command)
|
96
|
-
end
|
97
|
-
|
98
|
-
def look_for_command(dir, command)
|
99
|
-
path = File.join(dir, command)
|
100
|
-
File.exist?(path) ? path : nil
|
101
|
-
end
|
102
|
-
|
103
|
-
def in_path_command(command)
|
104
|
-
Open3.popen3 'which', command do |_, out,|
|
105
|
-
out.eof? ? nil : command
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|