colorcode_convert_rgb 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +23 -0
- data/LICENSE.txt +21 -0
- data/README.md +40 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/colorcode_convert_rgb.gemspec +30 -0
- data/exe/colorcode_convert_rgb +4 -0
- data/lib/colorcode_convert_rgb.rb +7 -0
- data/lib/colorcode_convert_rgb/cli.rb +13 -0
- data/lib/colorcode_convert_rgb/version.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/bin/colorcode_convert_rgb +27 -0
- data/vendor/bundle/ruby/2.5.0/bin/rake +27 -0
- data/vendor/bundle/ruby/2.5.0/bin/thor +27 -0
- data/vendor/bundle/ruby/2.5.0/cache/minitest-5.14.2.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rake-12.3.3.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/thor-1.0.1.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/.autotest +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/History.rdoc +1397 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/Manifest.txt +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/README.rdoc +764 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/Rakefile +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/design_rationale.rb +52 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/hoe/minitest.rb +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest.rb +1056 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/assertions.rb +807 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/autorun.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/benchmark.rb +455 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/expectations.rb +303 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/hell.rb +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/mock.rb +240 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/parallel.rb +70 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/pride.rb +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/pride_plugin.rb +142 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/spec.rb +342 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/test.rb +220 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/lib/minitest/unit.rb +45 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/test/minitest/metametameta.rb +136 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/test/minitest/test_minitest_assertions.rb +1575 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/test/minitest/test_minitest_benchmark.rb +137 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/test/minitest/test_minitest_mock.rb +872 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/test/minitest/test_minitest_reporter.rb +299 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/test/minitest/test_minitest_spec.rb +1061 -0
- data/vendor/bundle/ruby/2.5.0/gems/minitest-5.14.2/test/minitest/test_minitest_test.rb +1084 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/Gemfile +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/History.rdoc +2344 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/README.rdoc +156 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/Rakefile +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/bundle +105 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/console +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rake +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rdoc +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/rubocop +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/bin/setup +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rake.1 +156 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/exe/rake +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake.rb +71 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-12.3.3/rake.gemspec +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/.document +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/CHANGELOG.md +220 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/CONTRIBUTING.md +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/LICENSE.md +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/README.md +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/bin/thor +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor.rb +517 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/actions.rb +336 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/actions/create_file.rb +104 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/actions/create_link.rb +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/actions/directory.rb +108 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/actions/empty_directory.rb +143 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/actions/file_manipulation.rb +373 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/actions/inject_into_file.rb +120 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/base.rb +699 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/command.rb +142 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/core_ext/hash_with_indifferent_access.rb +97 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/error.rb +110 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/group.rb +281 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/invocation.rb +178 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/line_editor.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/line_editor/basic.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/line_editor/readline.rb +88 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/nested_context.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/parser.rb +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/parser/argument.rb +70 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/parser/arguments.rb +175 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/parser/option.rb +159 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/parser/options.rb +236 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/rake_compat.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/runner.rb +325 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/shell.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/shell/basic.rb +491 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/shell/color.rb +153 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/shell/html.rb +126 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/util.rb +284 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/lib/thor/version.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/thor-1.0.1/thor.gemspec +28 -0
- data/vendor/bundle/ruby/2.5.0/specifications/minitest-5.14.2.gemspec +38 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rake-12.3.3.gemspec +43 -0
- data/vendor/bundle/ruby/2.5.0/specifications/thor-1.0.1.gemspec +34 -0
- metadata +214 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
# Makefile loader to be used with the import file loader. Use this to
|
5
|
+
# import dependencies from make dependency tools:
|
6
|
+
#
|
7
|
+
# require 'rake/loaders/makefile'
|
8
|
+
#
|
9
|
+
# file ".depends.mf" => [SRC_LIST] do |t|
|
10
|
+
# sh "makedepend -f- -- #{CFLAGS} -- #{t.prerequisites} > #{t.name}"
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# import ".depends.mf"
|
14
|
+
#
|
15
|
+
# See {Importing Dependencies}[link:doc/rakefile_rdoc.html#label-Importing+Dependencies]
|
16
|
+
# for further details.
|
17
|
+
|
18
|
+
class MakefileLoader
|
19
|
+
include Rake::DSL
|
20
|
+
|
21
|
+
SPACE_MARK = "\0" # :nodoc:
|
22
|
+
|
23
|
+
# Load the makefile dependencies in +fn+.
|
24
|
+
def load(fn) # :nodoc:
|
25
|
+
lines = File.read fn
|
26
|
+
lines.gsub!(/\\ /, SPACE_MARK)
|
27
|
+
lines.gsub!(/#[^\n]*\n/m, "")
|
28
|
+
lines.gsub!(/\\\n/, " ")
|
29
|
+
lines.each_line do |line|
|
30
|
+
process_line(line)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
# Process one logical line of makefile data.
|
37
|
+
def process_line(line) # :nodoc:
|
38
|
+
file_tasks, args = line.split(":", 2)
|
39
|
+
return if args.nil?
|
40
|
+
dependents = args.split.map { |d| respace(d) }
|
41
|
+
file_tasks.scan(/\S+/) do |file_task|
|
42
|
+
file_task = respace(file_task)
|
43
|
+
file file_task => dependents
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def respace(str) # :nodoc:
|
48
|
+
str.tr SPACE_MARK, " "
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# Install the handler
|
53
|
+
Rake.application.add_loader("mf", MakefileLoader.new)
|
54
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
# Same as a regular task, but the immediate prerequisites are done in
|
5
|
+
# parallel using Ruby threads.
|
6
|
+
#
|
7
|
+
class MultiTask < Task
|
8
|
+
private
|
9
|
+
|
10
|
+
def invoke_prerequisites(task_args, invocation_chain) # :nodoc:
|
11
|
+
invoke_prerequisites_concurrently(task_args, invocation_chain)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
##
|
3
|
+
# The NameSpace class will lookup task names in the scope defined by a
|
4
|
+
# +namespace+ command.
|
5
|
+
|
6
|
+
class Rake::NameSpace
|
7
|
+
|
8
|
+
##
|
9
|
+
# Create a namespace lookup object using the given task manager
|
10
|
+
# and the list of scopes.
|
11
|
+
|
12
|
+
def initialize(task_manager, scope_list)
|
13
|
+
@task_manager = task_manager
|
14
|
+
@scope = scope_list.dup
|
15
|
+
end
|
16
|
+
|
17
|
+
##
|
18
|
+
# Lookup a task named +name+ in the namespace.
|
19
|
+
|
20
|
+
def [](name)
|
21
|
+
@task_manager.lookup(name, @scope)
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# The scope of the namespace (a LinkedList)
|
26
|
+
|
27
|
+
def scope
|
28
|
+
@scope.dup
|
29
|
+
end
|
30
|
+
|
31
|
+
##
|
32
|
+
# Return the list of tasks defined in this and nested namespaces.
|
33
|
+
|
34
|
+
def tasks
|
35
|
+
@task_manager.tasks_in_scope(@scope)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,207 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Define a package task library to aid in the definition of
|
3
|
+
# redistributable package files.
|
4
|
+
|
5
|
+
require "rake"
|
6
|
+
require "rake/tasklib"
|
7
|
+
|
8
|
+
module Rake
|
9
|
+
|
10
|
+
# Create a packaging task that will package the project into
|
11
|
+
# distributable files (e.g zip archive or tar files).
|
12
|
+
#
|
13
|
+
# The PackageTask will create the following targets:
|
14
|
+
#
|
15
|
+
# +:package+ ::
|
16
|
+
# Create all the requested package files.
|
17
|
+
#
|
18
|
+
# +:clobber_package+ ::
|
19
|
+
# Delete all the package files. This target is automatically
|
20
|
+
# added to the main clobber target.
|
21
|
+
#
|
22
|
+
# +:repackage+ ::
|
23
|
+
# Rebuild the package files from scratch, even if they are not out
|
24
|
+
# of date.
|
25
|
+
#
|
26
|
+
# <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tgz"</tt> ::
|
27
|
+
# Create a gzipped tar package (if <em>need_tar</em> is true).
|
28
|
+
#
|
29
|
+
# <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.gz"</tt> ::
|
30
|
+
# Create a gzipped tar package (if <em>need_tar_gz</em> is true).
|
31
|
+
#
|
32
|
+
# <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.bz2"</tt> ::
|
33
|
+
# Create a bzip2'd tar package (if <em>need_tar_bz2</em> is true).
|
34
|
+
#
|
35
|
+
# <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.zip"</tt> ::
|
36
|
+
# Create a zip package archive (if <em>need_zip</em> is true).
|
37
|
+
#
|
38
|
+
# Example:
|
39
|
+
#
|
40
|
+
# Rake::PackageTask.new("rake", "1.2.3") do |p|
|
41
|
+
# p.need_tar = true
|
42
|
+
# p.package_files.include("lib/**/*.rb")
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
class PackageTask < TaskLib
|
46
|
+
# Name of the package (from the GEM Spec).
|
47
|
+
attr_accessor :name
|
48
|
+
|
49
|
+
# Version of the package (e.g. '1.3.2').
|
50
|
+
attr_accessor :version
|
51
|
+
|
52
|
+
# Directory used to store the package files (default is 'pkg').
|
53
|
+
attr_accessor :package_dir
|
54
|
+
|
55
|
+
# True if a gzipped tar file (tgz) should be produced (default is
|
56
|
+
# false).
|
57
|
+
attr_accessor :need_tar
|
58
|
+
|
59
|
+
# True if a gzipped tar file (tar.gz) should be produced (default
|
60
|
+
# is false).
|
61
|
+
attr_accessor :need_tar_gz
|
62
|
+
|
63
|
+
# True if a bzip2'd tar file (tar.bz2) should be produced (default
|
64
|
+
# is false).
|
65
|
+
attr_accessor :need_tar_bz2
|
66
|
+
|
67
|
+
# True if a xz'd tar file (tar.xz) should be produced (default is false)
|
68
|
+
attr_accessor :need_tar_xz
|
69
|
+
|
70
|
+
# True if a zip file should be produced (default is false)
|
71
|
+
attr_accessor :need_zip
|
72
|
+
|
73
|
+
# List of files to be included in the package.
|
74
|
+
attr_accessor :package_files
|
75
|
+
|
76
|
+
# Tar command for gzipped or bzip2ed archives. The default is 'tar'.
|
77
|
+
attr_accessor :tar_command
|
78
|
+
|
79
|
+
# Zip command for zipped archives. The default is 'zip'.
|
80
|
+
attr_accessor :zip_command
|
81
|
+
|
82
|
+
# Create a Package Task with the given name and version. Use +:noversion+
|
83
|
+
# as the version to build a package without a version or to provide a
|
84
|
+
# fully-versioned package name.
|
85
|
+
|
86
|
+
def initialize(name=nil, version=nil)
|
87
|
+
init(name, version)
|
88
|
+
yield self if block_given?
|
89
|
+
define unless name.nil?
|
90
|
+
end
|
91
|
+
|
92
|
+
# Initialization that bypasses the "yield self" and "define" step.
|
93
|
+
def init(name, version)
|
94
|
+
@name = name
|
95
|
+
@version = version
|
96
|
+
@package_files = Rake::FileList.new
|
97
|
+
@package_dir = "pkg"
|
98
|
+
@need_tar = false
|
99
|
+
@need_tar_gz = false
|
100
|
+
@need_tar_bz2 = false
|
101
|
+
@need_tar_xz = false
|
102
|
+
@need_zip = false
|
103
|
+
@tar_command = "tar"
|
104
|
+
@zip_command = "zip"
|
105
|
+
end
|
106
|
+
|
107
|
+
# Create the tasks defined by this task library.
|
108
|
+
def define
|
109
|
+
fail "Version required (or :noversion)" if @version.nil?
|
110
|
+
@version = nil if :noversion == @version
|
111
|
+
|
112
|
+
desc "Build all the packages"
|
113
|
+
task :package
|
114
|
+
|
115
|
+
desc "Force a rebuild of the package files"
|
116
|
+
task repackage: [:clobber_package, :package]
|
117
|
+
|
118
|
+
desc "Remove package products"
|
119
|
+
task :clobber_package do
|
120
|
+
rm_r package_dir rescue nil
|
121
|
+
end
|
122
|
+
|
123
|
+
task clobber: [:clobber_package]
|
124
|
+
|
125
|
+
[
|
126
|
+
[need_tar, tgz_file, "z"],
|
127
|
+
[need_tar_gz, tar_gz_file, "z"],
|
128
|
+
[need_tar_bz2, tar_bz2_file, "j"],
|
129
|
+
[need_tar_xz, tar_xz_file, "J"]
|
130
|
+
].each do |need, file, flag|
|
131
|
+
if need
|
132
|
+
task package: ["#{package_dir}/#{file}"]
|
133
|
+
file "#{package_dir}/#{file}" =>
|
134
|
+
[package_dir_path] + package_files do
|
135
|
+
chdir(package_dir) { sh @tar_command, "#{flag}cvf", file, package_name }
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
if need_zip
|
141
|
+
task package: ["#{package_dir}/#{zip_file}"]
|
142
|
+
file "#{package_dir}/#{zip_file}" =>
|
143
|
+
[package_dir_path] + package_files do
|
144
|
+
chdir(package_dir) { sh @zip_command, "-r", zip_file, package_name }
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
directory package_dir_path => @package_files do
|
149
|
+
@package_files.each do |fn|
|
150
|
+
f = File.join(package_dir_path, fn)
|
151
|
+
fdir = File.dirname(f)
|
152
|
+
mkdir_p(fdir) unless File.exist?(fdir)
|
153
|
+
if File.directory?(fn)
|
154
|
+
mkdir_p(f)
|
155
|
+
else
|
156
|
+
rm_f f
|
157
|
+
safe_ln(fn, f)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
self
|
162
|
+
end
|
163
|
+
|
164
|
+
# The name of this package
|
165
|
+
|
166
|
+
def package_name
|
167
|
+
@version ? "#{@name}-#{@version}" : @name
|
168
|
+
end
|
169
|
+
|
170
|
+
# The directory this package will be built in
|
171
|
+
|
172
|
+
def package_dir_path
|
173
|
+
"#{package_dir}/#{package_name}"
|
174
|
+
end
|
175
|
+
|
176
|
+
# The package name with .tgz added
|
177
|
+
|
178
|
+
def tgz_file
|
179
|
+
"#{package_name}.tgz"
|
180
|
+
end
|
181
|
+
|
182
|
+
# The package name with .tar.gz added
|
183
|
+
|
184
|
+
def tar_gz_file
|
185
|
+
"#{package_name}.tar.gz"
|
186
|
+
end
|
187
|
+
|
188
|
+
# The package name with .tar.bz2 added
|
189
|
+
|
190
|
+
def tar_bz2_file
|
191
|
+
"#{package_name}.tar.bz2"
|
192
|
+
end
|
193
|
+
|
194
|
+
# The package name with .tar.xz added
|
195
|
+
|
196
|
+
def tar_xz_file
|
197
|
+
"#{package_name}.tar.xz"
|
198
|
+
end
|
199
|
+
|
200
|
+
# The package name with .zip added
|
201
|
+
|
202
|
+
def zip_file
|
203
|
+
"#{package_name}.zip"
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Defines a :phony task that you can use as a dependency. This allows
|
3
|
+
# file-based tasks to use non-file-based tasks as prerequisites
|
4
|
+
# without forcing them to rebuild.
|
5
|
+
#
|
6
|
+
# See FileTask#out_of_date? and Task#timestamp for more info.
|
7
|
+
|
8
|
+
require "rake"
|
9
|
+
|
10
|
+
task :phony
|
11
|
+
|
12
|
+
Rake::Task[:phony].tap do |task|
|
13
|
+
def task.timestamp # :nodoc:
|
14
|
+
Time.at 0
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
# Include PrivateReader to use +private_reader+.
|
5
|
+
module PrivateReader # :nodoc: all
|
6
|
+
|
7
|
+
def self.included(base)
|
8
|
+
base.extend(ClassMethods)
|
9
|
+
end
|
10
|
+
|
11
|
+
module ClassMethods
|
12
|
+
|
13
|
+
# Declare a list of private accessors
|
14
|
+
def private_reader(*names)
|
15
|
+
attr_reader(*names)
|
16
|
+
private(*names)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Rake
|
3
|
+
|
4
|
+
# A Promise object represents a promise to do work (a chore) in the
|
5
|
+
# future. The promise is created with a block and a list of
|
6
|
+
# arguments for the block. Calling value will return the value of
|
7
|
+
# the promised chore.
|
8
|
+
#
|
9
|
+
# Used by ThreadPool.
|
10
|
+
#
|
11
|
+
class Promise # :nodoc: all
|
12
|
+
NOT_SET = Object.new.freeze # :nodoc:
|
13
|
+
|
14
|
+
attr_accessor :recorder
|
15
|
+
|
16
|
+
# Create a promise to do the chore specified by the block.
|
17
|
+
def initialize(args, &block)
|
18
|
+
@mutex = Mutex.new
|
19
|
+
@result = NOT_SET
|
20
|
+
@error = NOT_SET
|
21
|
+
@args = args
|
22
|
+
@block = block
|
23
|
+
end
|
24
|
+
|
25
|
+
# Return the value of this promise.
|
26
|
+
#
|
27
|
+
# If the promised chore is not yet complete, then do the work
|
28
|
+
# synchronously. We will wait.
|
29
|
+
def value
|
30
|
+
unless complete?
|
31
|
+
stat :sleeping_on, item_id: object_id
|
32
|
+
@mutex.synchronize do
|
33
|
+
stat :has_lock_on, item_id: object_id
|
34
|
+
chore
|
35
|
+
stat :releasing_lock_on, item_id: object_id
|
36
|
+
end
|
37
|
+
end
|
38
|
+
error? ? raise(@error) : @result
|
39
|
+
end
|
40
|
+
|
41
|
+
# If no one else is working this promise, go ahead and do the chore.
|
42
|
+
def work
|
43
|
+
stat :attempting_lock_on, item_id: object_id
|
44
|
+
if @mutex.try_lock
|
45
|
+
stat :has_lock_on, item_id: object_id
|
46
|
+
chore
|
47
|
+
stat :releasing_lock_on, item_id: object_id
|
48
|
+
@mutex.unlock
|
49
|
+
else
|
50
|
+
stat :bailed_on, item_id: object_id
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
# Perform the chore promised
|
57
|
+
def chore
|
58
|
+
if complete?
|
59
|
+
stat :found_completed, item_id: object_id
|
60
|
+
return
|
61
|
+
end
|
62
|
+
stat :will_execute, item_id: object_id
|
63
|
+
begin
|
64
|
+
@result = @block.call(*@args)
|
65
|
+
rescue Exception => e
|
66
|
+
@error = e
|
67
|
+
end
|
68
|
+
stat :did_execute, item_id: object_id
|
69
|
+
discard
|
70
|
+
end
|
71
|
+
|
72
|
+
# Do we have a result for the promise
|
73
|
+
def result?
|
74
|
+
!@result.equal?(NOT_SET)
|
75
|
+
end
|
76
|
+
|
77
|
+
# Did the promise throw an error
|
78
|
+
def error?
|
79
|
+
!@error.equal?(NOT_SET)
|
80
|
+
end
|
81
|
+
|
82
|
+
# Are we done with the promise
|
83
|
+
def complete?
|
84
|
+
result? || error?
|
85
|
+
end
|
86
|
+
|
87
|
+
# free up these items for the GC
|
88
|
+
def discard
|
89
|
+
@args = nil
|
90
|
+
@block = nil
|
91
|
+
end
|
92
|
+
|
93
|
+
# Record execution statistics if there is a recorder
|
94
|
+
def stat(*args)
|
95
|
+
@recorder.call(*args) if @recorder
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|