dock0 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 93d7456a2290387ed74a1b3d5dacfd934faf86b2
4
- data.tar.gz: f0752fe961880c4cc65eef15125f89627d0356b8
3
+ metadata.gz: 65012095e39136647f62864f6bd21447cd15dd10
4
+ data.tar.gz: cd192de12e6ac2e612d3b372c6748e0b710b7e9e
5
5
  SHA512:
6
- metadata.gz: 0aae22f19127ceaa4eefad8b4eb50f5e58e9e0a793c1260702e5cda3a14728ad2080db9da300a911123fec1bdb79556973eecd63f8751d8b62683fd505630c64
7
- data.tar.gz: 2e5d2ea2a39355e3516c28f85d9ea45c860ff46937f9f3bed59db305498055db92ec8c0f7ee854e3cbfe8bd51d4bad1c288b667e68139788ed6b543963ff2df5
6
+ metadata.gz: fc78d710c6f27a6528016143d78ba8858a850ff213b0551210b371f82457a5d4b390fce015b719ad8b30ce41051514f38d811f6b38cb414258ebf04a6ff879c4
7
+ data.tar.gz: 0853929148b265d2f290759437b3184a3c4f8c8b44cba56e64ccd6d2eee7ee03aad97d9f13836068caa34e3a00b2b737d4c8842934c3c34d7527e081a636f61d
data/lib/dock0/image.rb CHANGED
@@ -7,8 +7,8 @@ module Dock0
7
7
  def default_config # rubocop:disable Metrics/MethodLength
8
8
  {
9
9
  'paths' => {
10
- 'build_file' => './build_file',
11
- 'build' => './build_file_mount',
10
+ 'build_file' => './root.fs',
11
+ 'build' => './build',
12
12
  'package_list' => './packages',
13
13
  'overlay' => './overlay',
14
14
  'scripts' => './scripts',
data/lib/dock0/install.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'fileutils'
2
2
  require 'open-uri'
3
+ require 'pathname'
3
4
 
4
5
  module Dock0
5
6
  ##
@@ -10,45 +11,63 @@ module Dock0
10
11
  'paths' => {
11
12
  'templates' => './templates',
12
13
  'scripts' => './scripts',
13
- 'build' => './build'
14
+ 'build' => './build',
15
+ 'base' => '/'
14
16
  },
17
+ 'org' => 'dock0',
15
18
  'artifacts' => []
16
19
  }
17
20
  end
18
21
 
19
22
  def build_url(artifact)
20
- org = @config[:org]
21
- name, version, file = artifact.fetch('name', 'version', 'file')
23
+ org = @config['org']
24
+ name, version, file = artifact.values_at('name', 'version', 'file')
22
25
  "https://github.com/#{org}/#{name}/releases/download/#{version}/#{file}"
23
26
  end
24
27
 
25
28
  def build_path(artifact)
26
- "#{artifact['name']}/#{artifact['file']}"
29
+ "#{artifact['name']}/#{artifact['version']}/#{artifact['file']}"
30
+ end
31
+
32
+ def qualify_path(path)
33
+ "#{@paths['build']}/#{@paths['base']}/#{path}"
34
+ end
35
+
36
+ def missing(path, artifact)
37
+ return true unless File.exist? path
38
+ puts "#{artifact['name']} (#{artifact['version']}) already loaded"
27
39
  end
28
40
 
29
41
  def download(artifact)
30
42
  url, path = artifact.values_at('url', 'full_path')
43
+ return unless missing(path, artifact)
31
44
  puts "Downloading #{url} to #{path}"
45
+ FileUtils.mkdir_p File.dirname(path)
32
46
  File.open(path, 'wb') do |fh|
33
47
  open(url, 'rb') { |request| fh.write request.read }
34
48
  end
35
49
  end
36
50
 
37
51
  def chmod(artifact)
38
- File.chmod(artifact['mode'], full_path) if artifact['mode']
52
+ File.chmod(artifact['mode'], full_path)
39
53
  end
40
54
 
41
55
  def link(artifact)
42
- FileUtils.ln_sf artifact['link'], artifact['path']
56
+ full_link_path = qualify_path artifact['link']
57
+ FileUtils.mkdir_p File.dirname(full_link_path)
58
+ relative_path = Pathname(artifact['path']).relative_path_from(
59
+ Pathname(File.dirname(full_link_path))
60
+ )
61
+ FileUtils.ln_sf relative_path, full_link_path
43
62
  end
44
63
 
45
64
  def load_artifacts
46
65
  @config['artifacts'].each do |artifact|
47
66
  artifact['url'] ||= build_url(artifact)
48
67
  artifact['path'] ||= build_path(artifact)
49
- artifact['full_path'] = "#{@config['build']}/#{artifact['path']}"
68
+ artifact['full_path'] = qualify_path artifact['path']
50
69
  download artifact
51
- chmod artifact
70
+ chmod artifact if artifact['mode']
52
71
  link(artifact) if artifact['link']
53
72
  end
54
73
  end
@@ -71,17 +90,10 @@ module Dock0
71
90
  end
72
91
  end
73
92
 
74
- def finalize
75
- puts "Packing config into #{@paths['output']}"
76
- tar = Dir.chdir(File.dirname(@paths['build'])) { run 'tar cz .' }
77
- File.open(@paths['output'], 'w') { |fh| fh << tar }
78
- end
79
-
80
93
  def easy_mode
81
94
  load_artifacts
82
95
  render_templates
83
96
  run_scripts
84
- finalize
85
97
  end
86
98
  end
87
99
  end
data/lib/dock0/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # Set the version (needed for Mercenary -v)
3
3
  module Dock0
4
- VERSION = '0.2.3'
4
+ VERSION = '0.2.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dock0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Les Aker