dply 0.2.19 → 0.3.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 +5 -5
- data/.rspec +4 -0
- data/Rakefile +0 -14
- data/TODO +0 -1
- data/code_dump/old_remote_task.rb +2 -0
- data/{dev_bin → dev_exe}/dplyr +0 -0
- data/{dev_bin → dev_exe}/drake +1 -1
- data/dply.gemspec +2 -2
- data/{bin → exe}/dplyr +0 -0
- data/{bin → exe}/drake +12 -14
- data/lib/dply/TEST_TODO +50 -0
- data/lib/dply/app_config.rb +108 -0
- data/lib/dply/base_config.rb +110 -0
- data/lib/dply/build.rb +17 -11
- data/lib/dply/build_config.rb +28 -96
- data/lib/dply/bundle.rb +7 -30
- data/lib/dply/cli/build.rb +5 -12
- data/lib/dply/cli/ctl.rb +7 -8
- data/lib/dply/cli/deploy.rb +6 -10
- data/lib/dply/cli/devbuild.rb +6 -10
- data/lib/dply/cli/install_pkgs.rb +2 -3
- data/lib/dply/cli/run.rb +27 -0
- data/lib/dply/cli/status.rb +1 -2
- data/lib/dply/cli/task.rb +6 -12
- data/lib/dply/code_archive.rb +123 -0
- data/lib/dply/command.rb +57 -0
- data/lib/dply/config_downloader.rb +3 -2
- data/lib/dply/curl.rb +1 -5
- data/lib/dply/custom_logger.rb +18 -1
- data/lib/dply/deplist.rb +16 -48
- data/lib/dply/deploy_config.rb +34 -0
- data/lib/dply/elf.rb +60 -0
- data/lib/dply/env.rb +9 -0
- data/lib/dply/git.rb +15 -8
- data/lib/dply/helper.rb +21 -33
- data/lib/dply/linker.rb +27 -27
- data/lib/dply/lock.rb +2 -9
- data/lib/dply/logger.rb +1 -1
- data/lib/dply/pkgs.rb +9 -11
- data/lib/dply/release.rb +2 -2
- data/lib/dply/{archive.rb → remote_archive.rb} +1 -1
- data/lib/dply/repo.rb +3 -3
- data/lib/dply/rpm.rb +12 -20
- data/lib/dply/scripts/depcheck.rb +4 -0
- data/lib/dply/shared_dirs.rb +1 -1
- data/lib/dply/strategy/archive.rb +15 -22
- data/lib/dply/strategy/base.rb +82 -0
- data/lib/dply/strategy/git.rb +18 -19
- data/lib/dply/task_dsl.rb +101 -0
- data/lib/dply/util.rb +75 -0
- data/lib/dply/venv.rb +53 -0
- data/lib/dply/version.rb +1 -1
- data/lib/dply/yum.rb +21 -31
- data/lib/dplyr/consul.rb +1 -1
- data/spec/dply/base_config_spec.rb +178 -0
- data/spec/dply/bundle_spec.rb +100 -0
- data/spec/dply/command_spec.rb +190 -0
- data/spec/dply/curl_spec.rb +41 -0
- data/spec/dply/deplist_spec.rb +48 -0
- data/spec/dply/elf_spec.rb +64 -0
- data/spec/dply/env_spec.rb +57 -0
- data/spec/dply/git_spec.rb +136 -0
- data/spec/dply/helper_spec.rb +168 -0
- data/spec/dply/linker_spec.rb +81 -0
- data/spec/dply/lock_spec.rb +24 -0
- data/spec/dply/pkgs_spec.rb +105 -0
- data/spec/dply/repo_spec.rb +58 -0
- data/spec/dply/rpm_spec.rb +32 -0
- data/spec/dply/yum_spec.rb +29 -0
- data/spec/integration/archive_flow_spec.rb +87 -0
- data/spec/integration/git_flow_spec.rb +63 -0
- data/spec/repo.rb +27 -0
- data/spec/spec_helper.rb +44 -0
- data/spec/test_data/build.tar.gz +0 -0
- data/spec/test_data/build.tar.gz.md5 +1 -0
- data/spec/test_data/bundle/gems_installed/Gemfile +1 -0
- data/spec/test_data/bundle/gems_not_installed/Gemfile +2 -0
- data/spec/test_data/bundle/no_gemfile/.gitkeep +0 -0
- data/spec/test_data/command/test.rb +7 -0
- data/spec/test_data/elf/elf +0 -0
- data/spec/test_data/elf/libpgtypes.so.3 +0 -0
- data/spec/test_data/elf/not_elf +1 -0
- data/spec/test_data/sample_repo/.dply.lock +0 -0
- data/spec/test_data/sample_repo/Gemfile +2 -0
- data/spec/test_data/sample_repo/Rakefile +3 -0
- data/spec/test_data/sample_repo/app.rb +1 -0
- data/spec/test_data/sample_repo/dply/app.rb +33 -0
- data/spec/test_data/sample_repo/lib/libacl.so.1 +0 -0
- data/spec/test_data/sample_repo/pkgs.yml +2 -0
- data/spec/webserver.rb +21 -0
- metadata +96 -28
- data/lib/dply/cli/app_task.rb +0 -38
- data/lib/dply/config.rb +0 -120
- data/lib/dply/config_struct.rb +0 -52
- data/lib/dply/rakelib/drake.rake +0 -33
- data/lib/dply/tasks.rb +0 -136
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: ffaa634a168cfe8ccaab138bff92455a00ea17fab5ed722046add3e4ad9107f1
|
|
4
|
+
data.tar.gz: 9890f68e334f77d50bcef82fb1b508c137c52f26b5a39b4ff872cd4180f2e6ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3a2991743833049bb2ec714dbc3da301affae32812e0f8f806a9a96104b920291df9a1ee8563b2e71e304df89d5e1e8b68b426ec2a79e3033e315d46c9b2e7be
|
|
7
|
+
data.tar.gz: 2c99051eec06e0dbb9e25cd1c9d0ea804073db65f0355bf1931b13a8749911e51080e49008564b905202944b0e232afd3bbdade973ab80da3d413a782df3ed8f
|
data/.rspec
ADDED
data/Rakefile
CHANGED
|
@@ -7,17 +7,3 @@ Rake::TestTask.new do |t|
|
|
|
7
7
|
t.pattern = "test/unit/*_test.rb"
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
task :dev_install do
|
|
11
|
-
load './lib/dply/version.rb'
|
|
12
|
-
version = Dply::VERSION
|
|
13
|
-
sh "gem build dply.gemspec"
|
|
14
|
-
sh "gem install dply-#{version}.gem"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
file "wtf" do |t|
|
|
19
|
-
cp "dply.gemspec", t.name
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
task :lol => :wtf
|
|
23
|
-
|
data/TODO
CHANGED
|
@@ -78,6 +78,8 @@ module Dply
|
|
|
78
78
|
|
|
79
79
|
def handle_ready_stream(stream)
|
|
80
80
|
host_string = "#{@io_names[stream]}"
|
|
81
|
+
#readline is bad here...will block
|
|
82
|
+
#should use read_nonblock to read full lines and keep partial lines in fd specific old buffer...then concatenate old_buffer and new lines
|
|
81
83
|
printf @job_output_template, host_string, stream.readline
|
|
82
84
|
return false
|
|
83
85
|
rescue EOFError,Errno::ECONNRESET, Errno::EPIPE, Errno::EIO => e
|
data/{dev_bin → dev_exe}/dplyr
RENAMED
|
File without changes
|
data/{dev_bin → dev_exe}/drake
RENAMED
data/dply.gemspec
CHANGED
|
@@ -13,11 +13,11 @@ Gem::Specification.new do |spec|
|
|
|
13
13
|
spec.license = "MIT"
|
|
14
14
|
|
|
15
15
|
spec.files = `git ls-files -z`.split("\x0")
|
|
16
|
-
spec.
|
|
16
|
+
spec.bindir = "exe"
|
|
17
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
17
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
18
19
|
spec.require_paths = ["lib"]
|
|
19
20
|
spec.add_dependency "ruby-elf", "~> 1.0"
|
|
20
|
-
spec.add_dependency "ruby-filemagic", "~> 0.7"
|
|
21
21
|
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.6"
|
|
23
23
|
spec.add_development_dependency "rake"
|
data/{bin → exe}/dplyr
RENAMED
|
File without changes
|
data/{bin → exe}/drake
RENAMED
|
@@ -5,9 +5,7 @@ $stdout.sync = true
|
|
|
5
5
|
|
|
6
6
|
require 'optparse'
|
|
7
7
|
require 'dply/error'
|
|
8
|
-
require 'dply/version'
|
|
9
8
|
require 'dply/logger'
|
|
10
|
-
require 'dply/config'
|
|
11
9
|
require 'pathname'
|
|
12
10
|
|
|
13
11
|
File.umask 0022
|
|
@@ -15,16 +13,16 @@ File.umask 0022
|
|
|
15
13
|
logger = ::Dply::Logger.logger
|
|
16
14
|
|
|
17
15
|
options = {}
|
|
18
|
-
opts_parser = OptionParser.new do |opts|
|
|
19
|
-
|
|
20
|
-
banner = []
|
|
16
|
+
opts_parser = OptionParser.new do |opts|
|
|
17
|
+
|
|
18
|
+
banner = []
|
|
21
19
|
banner << "Usage: drake [global options] command [options] args"
|
|
22
20
|
banner << "Commands: deploy reload task"
|
|
23
|
-
|
|
21
|
+
|
|
24
22
|
banner << "Options: "
|
|
25
23
|
opts.banner = banner.join("\n")
|
|
26
24
|
|
|
27
|
-
opts.on("-d", "--dir [DEPLOY DIR]" , "Set dir") do |d|
|
|
25
|
+
opts.on("-d", "--dir [DEPLOY DIR]" , "Set dir") do |d|
|
|
28
26
|
path = Pathname.new(d)
|
|
29
27
|
raise ::Dply::Error, "dir path must be absolute" if path.relative?
|
|
30
28
|
options[:dir] = path
|
|
@@ -35,6 +33,7 @@ opts_parser = OptionParser.new do |opts|
|
|
|
35
33
|
end
|
|
36
34
|
|
|
37
35
|
opts.on("-v", "--version", "Show version") do |v|
|
|
36
|
+
require 'dply/version'
|
|
38
37
|
puts ::Dply::VERSION
|
|
39
38
|
exit
|
|
40
39
|
end
|
|
@@ -51,10 +50,10 @@ opts_parser = OptionParser.new do |opts|
|
|
|
51
50
|
logger.trace_mode = true
|
|
52
51
|
end
|
|
53
52
|
|
|
54
|
-
opts.on_tail("-h", "--help", "Show this message") do
|
|
53
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
|
55
54
|
puts opts
|
|
56
55
|
exit
|
|
57
|
-
end
|
|
56
|
+
end
|
|
58
57
|
end
|
|
59
58
|
|
|
60
59
|
def run_cli(command, argv)
|
|
@@ -75,15 +74,15 @@ begin
|
|
|
75
74
|
case command
|
|
76
75
|
when :deploy, :task, :app_task,
|
|
77
76
|
:build, :depcheck, :"install-pkgs",
|
|
78
|
-
:status, :devbuild, :setup
|
|
77
|
+
:status, :devbuild, :setup, :run
|
|
79
78
|
run_cli command, ARGV
|
|
80
79
|
when :reload, :stop, :start, :reopen_logs
|
|
81
80
|
require 'dply/cli/ctl'
|
|
82
81
|
ctl = Dply::Cli::Ctl.new
|
|
83
82
|
ctl.run command
|
|
84
|
-
when
|
|
85
|
-
require '
|
|
86
|
-
|
|
83
|
+
when :console
|
|
84
|
+
require 'pry'
|
|
85
|
+
binding.pry
|
|
87
86
|
when :''
|
|
88
87
|
puts opts_parser
|
|
89
88
|
else
|
|
@@ -101,4 +100,3 @@ rescue OptionParser::InvalidOption, OptionParser::MissingArgument, ::Dply::Error
|
|
|
101
100
|
abort
|
|
102
101
|
end
|
|
103
102
|
end
|
|
104
|
-
|
data/lib/dply/TEST_TODO
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
NN: version.rb
|
|
2
|
+
NN: error.rb
|
|
3
|
+
NN: custom_logger.rb
|
|
4
|
+
NN: logger.rb
|
|
5
|
+
|
|
6
|
+
D: bundle.rb
|
|
7
|
+
D: command.rb
|
|
8
|
+
D: elf.rb
|
|
9
|
+
D: env.rb
|
|
10
|
+
D: linker.rb
|
|
11
|
+
D: rpm.rb
|
|
12
|
+
D: yum.rb
|
|
13
|
+
D: pkgs.rb
|
|
14
|
+
D: curl.rb
|
|
15
|
+
|
|
16
|
+
E: repo.rb
|
|
17
|
+
E: git.rb
|
|
18
|
+
E: deplist.rb
|
|
19
|
+
E: helper.rb
|
|
20
|
+
E: config_downloader.rb
|
|
21
|
+
E: remote_archive.rb
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
?: code_archive.rb
|
|
26
|
+
?: config.rb
|
|
27
|
+
?: release.rb
|
|
28
|
+
?: task_dsl.rb
|
|
29
|
+
?: tasklib.rb
|
|
30
|
+
?: tasks_config.rb
|
|
31
|
+
DSL: build.rb
|
|
32
|
+
E: config_struct.rb
|
|
33
|
+
E: jenkins.rb
|
|
34
|
+
E: lock.rb
|
|
35
|
+
E: release_helper.rb
|
|
36
|
+
E: setup.rb
|
|
37
|
+
E: tasks.rb
|
|
38
|
+
H: build_config.rb
|
|
39
|
+
TEST_TODO
|
|
40
|
+
WTF: shared_dirs.rb
|
|
41
|
+
strategy
|
|
42
|
+
strategy.rb
|
|
43
|
+
templates
|
|
44
|
+
todo
|
|
45
|
+
|
|
46
|
+
write integration tests first
|
|
47
|
+
|
|
48
|
+
tasks: refactor....remove sudo/useless functions
|
|
49
|
+
config_downloader : remove skip download
|
|
50
|
+
git: issue with checkout....currently no way to distinguish if a branch is being checked out or a file; pull maybe wrongly worded
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
require_relative 'task_dsl'
|
|
2
|
+
require_relative 'error'
|
|
3
|
+
require_relative 'logger'
|
|
4
|
+
|
|
5
|
+
module Dply
|
|
6
|
+
class AppConfig
|
|
7
|
+
|
|
8
|
+
include Logger
|
|
9
|
+
|
|
10
|
+
def initialize
|
|
11
|
+
@tasks = {}
|
|
12
|
+
@namespace = nil
|
|
13
|
+
@inside_namespace = false
|
|
14
|
+
@config_read = false
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def run_task(name, optional: false)
|
|
18
|
+
load_config
|
|
19
|
+
name = name.to_s
|
|
20
|
+
task_proc = @tasks[name]
|
|
21
|
+
if task_proc
|
|
22
|
+
task_dsl = TaskDsl.new(self)
|
|
23
|
+
task_dsl.instance_eval &task_proc
|
|
24
|
+
elsif optional
|
|
25
|
+
logger.warn "task #{name} not found: skipping"
|
|
26
|
+
else
|
|
27
|
+
raise Error, "task '#{name}' not defined"
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def load_config
|
|
32
|
+
return if @config_read
|
|
33
|
+
bundler_setup
|
|
34
|
+
check_config_exists
|
|
35
|
+
read_config "drakefile.rb", optional: true
|
|
36
|
+
Dir["dply/*.rb"].each do |i|
|
|
37
|
+
read_config i
|
|
38
|
+
end
|
|
39
|
+
@config_read = true
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
[:build, :test, :reload, :stop, :reopen_logs].each do |i|
|
|
45
|
+
define_method i do |&block|
|
|
46
|
+
task i, &block
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def deploy(kind, &block)
|
|
51
|
+
name = "deploy:#{kind}"
|
|
52
|
+
task name, &block
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def task(name, &block)
|
|
56
|
+
task_name = @namespace ? "#{@namespace}:#{name}" : name
|
|
57
|
+
@tasks[task_name.to_s] = block
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def namespace(name, &block)
|
|
61
|
+
raise "nested namespaces not allowed" if @inside_namespace
|
|
62
|
+
@namespace = name
|
|
63
|
+
@inside_namespace = true
|
|
64
|
+
instance_eval &block
|
|
65
|
+
@namespace = nil
|
|
66
|
+
@inside_namespace = false
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def read_config(file, optional: false)
|
|
70
|
+
if not File.readable? file
|
|
71
|
+
raise Error, "#{file} not found" if not optional
|
|
72
|
+
return
|
|
73
|
+
end
|
|
74
|
+
instance_eval(File.read(file), file)
|
|
75
|
+
rescue NoMethodError => e
|
|
76
|
+
raise Error, "invalid option used in config: #{e.name}"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def bundler_setup
|
|
80
|
+
return if not File.exist? "Gemfile"
|
|
81
|
+
require 'bundler'
|
|
82
|
+
deactivate_gem 'ruby-elf' # in case gemfile contains another version of ruby-elf
|
|
83
|
+
Bundler.setup
|
|
84
|
+
reactivate_gem 'dply'
|
|
85
|
+
logger.debug { "LOAD_PATH: #{$LOAD_PATH.inspect}" }
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def reactivate_gem(name)
|
|
89
|
+
spec = Gem.loaded_specs[name]
|
|
90
|
+
return if not spec
|
|
91
|
+
lib = "#{spec.gem_dir}/lib"
|
|
92
|
+
$LOAD_PATH.unshift lib if File.directory?(lib) && !$LOAD_PATH.include?(lib)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def deactivate_gem(name)
|
|
96
|
+
spec = Gem.loaded_specs[name]
|
|
97
|
+
return if not spec
|
|
98
|
+
$LOAD_PATH.delete "#{spec.gem_dir}/lib"
|
|
99
|
+
Gem.loaded_specs.delete name
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def check_config_exists
|
|
103
|
+
exists = File.exist?("drakefile.rb") || File.directory?("dply")
|
|
104
|
+
raise Error, "drakefile.rb or dply/ dir not present" if not exists
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
require 'dply/error'
|
|
2
|
+
module Dply
|
|
3
|
+
class BaseConfig
|
|
4
|
+
|
|
5
|
+
def self.define_opts(&block)
|
|
6
|
+
opts = {}
|
|
7
|
+
define_opt(opts)
|
|
8
|
+
opts.instance_eval(&block)
|
|
9
|
+
@struct_klass = new_struct_klass(opts)
|
|
10
|
+
opts.each do |opt, _|
|
|
11
|
+
define_opt_setter(opt)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.define_opt(opts)
|
|
16
|
+
opts.define_singleton_method(:opt) do |name, type: Object|
|
|
17
|
+
self[name] = type
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.new_struct_klass(opts)
|
|
22
|
+
Class.new do
|
|
23
|
+
|
|
24
|
+
def initialize
|
|
25
|
+
@proc_map = {}
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def set_proc(opt, pr)
|
|
29
|
+
@proc_map[opt] = pr
|
|
30
|
+
ivar = "@#{opt}"
|
|
31
|
+
remove_instance_variable(ivar) if instance_variable_defined?(ivar)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
opts.each do |opt, type|
|
|
35
|
+
|
|
36
|
+
define_method "#{opt}=" do |value|
|
|
37
|
+
assert_type(opt, value, type)
|
|
38
|
+
instance_variable_set("@#{opt}", value)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
define_method opt do
|
|
42
|
+
if instance_variable_defined?("@#{opt}")
|
|
43
|
+
instance_variable_get("@#{opt}")
|
|
44
|
+
elsif @proc_map.key?(opt)
|
|
45
|
+
value = instance_eval(&@proc_map.fetch(opt))
|
|
46
|
+
public_send("#{opt}=", value)
|
|
47
|
+
else
|
|
48
|
+
instance_variable_set("@#{opt}", nil)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
opts = nil
|
|
54
|
+
|
|
55
|
+
private def assert_type(opt, value, type)
|
|
56
|
+
if not value.is_a?(type)
|
|
57
|
+
raise Error, "opt(#{opt}) has value '#{value}' of type '#{value.class}' (Expected: '#{type}')"
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def self.define_opt_setter(opt)
|
|
64
|
+
define_method(opt) do |value = nil, &block|
|
|
65
|
+
set opt, value, &block
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def self.struct_klass
|
|
70
|
+
@struct_klass
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def self.build(path = nil, &block)
|
|
74
|
+
i = new
|
|
75
|
+
i.read(path) if path
|
|
76
|
+
i.instance_eval(&block) if block_given?
|
|
77
|
+
i.opts_struct
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
private_class_method :new
|
|
81
|
+
|
|
82
|
+
attr_reader :opts_struct
|
|
83
|
+
|
|
84
|
+
def initialize
|
|
85
|
+
@opts_struct = self.class.struct_klass.new
|
|
86
|
+
default_config
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def default_config
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def set(opt, value, &block)
|
|
93
|
+
if block
|
|
94
|
+
@opts_struct.set_proc(opt, block)
|
|
95
|
+
else
|
|
96
|
+
@opts_struct.public_send("#{opt}=", value)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def read(path, optional: false)
|
|
101
|
+
if not File.readable?(path)
|
|
102
|
+
return if optional
|
|
103
|
+
raise Error, "config #{path} not readable"
|
|
104
|
+
end
|
|
105
|
+
instance_eval(File.read(path), path)
|
|
106
|
+
rescue NoMethodError => e
|
|
107
|
+
raise Error, "invalid option used in config: #{e.name}"
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
data/lib/dply/build.rb
CHANGED
|
@@ -2,7 +2,7 @@ require 'dply/helper'
|
|
|
2
2
|
require 'dply/setup'
|
|
3
3
|
require 'dply/config_downloader'
|
|
4
4
|
require 'dply/yum'
|
|
5
|
-
require 'dply/
|
|
5
|
+
require 'dply/util'
|
|
6
6
|
require 'forwardable'
|
|
7
7
|
require 'digest'
|
|
8
8
|
|
|
@@ -31,12 +31,14 @@ module Dply
|
|
|
31
31
|
install_pkgs
|
|
32
32
|
clean_build_dir
|
|
33
33
|
link_build_dir
|
|
34
|
-
|
|
34
|
+
bundle.install
|
|
35
|
+
bundle.clean
|
|
36
|
+
util.run config.task
|
|
35
37
|
generate_checksum
|
|
36
38
|
end
|
|
37
39
|
end
|
|
38
40
|
|
|
39
|
-
private
|
|
41
|
+
private
|
|
40
42
|
|
|
41
43
|
def setup
|
|
42
44
|
setup = Setup.new(@config)
|
|
@@ -46,10 +48,10 @@ module Dply
|
|
|
46
48
|
def download_configs
|
|
47
49
|
files = config_map.values.uniq
|
|
48
50
|
downloader = ConfigDownloader.new(files, config_download_url)
|
|
49
|
-
downloader.skip_download = config_skip_download
|
|
51
|
+
downloader.skip_download = config_skip_download
|
|
50
52
|
downloader.download_all
|
|
51
53
|
end
|
|
52
|
-
|
|
54
|
+
|
|
53
55
|
def git_step
|
|
54
56
|
return unless config.git
|
|
55
57
|
if config.no_pull
|
|
@@ -60,12 +62,12 @@ module Dply
|
|
|
60
62
|
end
|
|
61
63
|
|
|
62
64
|
def link_all
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
util.link "#{config.dir}/shared", dir_map
|
|
66
|
+
util.link "#{config.dir}/config", config_map
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
def install_pkgs
|
|
68
|
-
|
|
70
|
+
util.install_pkgs(build_mode: true)
|
|
69
71
|
end
|
|
70
72
|
|
|
71
73
|
def clean_build_dir
|
|
@@ -79,7 +81,7 @@ module Dply
|
|
|
79
81
|
FileUtils.rm_rf build_artifacts if File.exists? build_artifacts
|
|
80
82
|
symlink build_dir, build_artifacts
|
|
81
83
|
end
|
|
82
|
-
|
|
84
|
+
|
|
83
85
|
def repo_dir
|
|
84
86
|
@repo_dir ||= "#{config.dir}/repo"
|
|
85
87
|
end
|
|
@@ -96,8 +98,12 @@ module Dply
|
|
|
96
98
|
end
|
|
97
99
|
end
|
|
98
100
|
|
|
99
|
-
def
|
|
100
|
-
@
|
|
101
|
+
def util
|
|
102
|
+
@util ||= Util.new
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def bundle
|
|
106
|
+
@bundle ||= Bundle.new
|
|
101
107
|
end
|
|
102
108
|
|
|
103
109
|
end
|