berks-monolith 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e00e4691862cc03e4cca97a0722ad297e535391
4
- data.tar.gz: 4183cdf8be169fc1b52c22f83e9f0fb4c8d49115
3
+ metadata.gz: 5850a377e166641ecfdefc6eb15bee7f5a6ccfee
4
+ data.tar.gz: 44386e6b7dd0491a984fa9adae7289b3e75f91ba
5
5
  SHA512:
6
- metadata.gz: caf6a7a55dd3b38d1e6fde05e7df7efddd6f6c8aa247af5b835aad685d455db71015cda82e1d2d9046cf84ae24d3b8340941be58973afff3a1f095dd9eb79496
7
- data.tar.gz: 82ff7940b2e02d68125bc479c40a2c27f06af2d712bc00b4d367d6a49588e8f8be28da8d40e7eaca5b9429901785a067baeffe174535adc0af8d05cd6f968fce
6
+ metadata.gz: 7517d54a444eaadf6f8b3997ec85f3ee114f065479043bc35d1c1a77f54be6473e271d2383e4ca84fa8d6f2d245f1b53ea6c127bdd5388809919048a5eb4fab5
7
+ data.tar.gz: 7c0dd2f7b722402b417696c18653920d66fa612e2447cf040528e42c700984df8af9d332cc1ef13643010a987af3e5e0cc8deedcde6046c01eb40ec20e78205f
data/README.md CHANGED
@@ -33,6 +33,16 @@ The `berks install` command collects all cookbooks into
33
33
  `~/.berkshelf/cookbooks`, but again VCS information is stripped out, and this
34
34
  contains all cookbooks, not just those associated with a specific Berksfile.
35
35
 
36
+ # Installation
37
+
38
+ Install from rubygems:
39
+
40
+ gem install berks-monolith
41
+
42
+ Or to install the development version from a git clone:
43
+
44
+ rake install
45
+
36
46
  ## Usage
37
47
 
38
48
  ### berks-monolith install
@@ -42,8 +42,9 @@ module Monolith
42
42
  gitpath = File.expand_path('../.git', berksfile.berksfile.filepath)
43
43
  gitexclude = GitExclude.new(gitpath, options)
44
44
  berksfile.cookbooks(path) do |cookbook, dep, destination|
45
- berksfile.monolith_action(:install, cookbook, dep, destination)
46
- gitexclude.add(destination)
45
+ changed = berksfile.monolith_action(:install, cookbook, dep, destination)
46
+
47
+ gitexclude.add(destination) if changed
47
48
  end
48
49
  gitexclude.update
49
50
  end
@@ -62,8 +63,8 @@ module Monolith
62
63
  gitpath = File.expand_path('../.git', berksfile.berksfile.filepath)
63
64
  gitexclude = GitExclude.new(gitpath, options)
64
65
  berksfile.cookbooks(path) do |cookbook, dep, destination|
65
- berksfile.monolith_action(:clean, cookbook, dep, destination)
66
- gitexclude.remove(destination)
66
+ changed = berksfile.monolith_action(:clean, cookbook, dep, destination)
67
+ gitexclude.remove(destination) if changed
67
68
  end
68
69
  gitexclude.update
69
70
  end
@@ -28,9 +28,11 @@ module Monolith
28
28
  if File.exist?(@destination)
29
29
  Monolith.formatter.clean(@cookbook, @destination)
30
30
  FileUtils.rm_rf(@destination)
31
+ true
31
32
  else
32
33
  rel_dest = Monolith.formatter.rel_dir(@destination)
33
34
  Monolith.formatter.skip(@cookbook, "#{rel_dest} doesn't exist")
35
+ nil
34
36
  end
35
37
  end
36
38
  end
@@ -12,6 +12,7 @@ module Monolith
12
12
  Monolith.formatter.install(@cookbook, @destination)
13
13
  FileUtils.cp_r(@cookbook.path, @destination)
14
14
  end
15
+ true
15
16
  end
16
17
 
17
18
  def update
@@ -19,6 +20,7 @@ module Monolith
19
20
  # blowing it away and recreating it. For the moment I'm opting not to do
20
21
  # that (it may be able ot be an option later)
21
22
  Monolith.formatter.skip(@cookbook, "Not updating community cookbook")
23
+ nil
22
24
  end
23
25
  end
24
26
  end
@@ -19,9 +19,11 @@ module Monolith
19
19
 
20
20
  # Not sure if I want to do this - should probably be an option
21
21
  #git %|reset --hard #{@revision}|
22
+ true
22
23
  else
23
24
  rel_dest = Monolith.formatter.rel_dir(@destination)
24
25
  Monolith.formatter.skip(@cookbook, "#{rel_dest} already exists")
26
+ nil
25
27
  end
26
28
  end
27
29
 
@@ -31,9 +33,11 @@ module Monolith
31
33
  Dir.chdir(@destination) do
32
34
  git %|pull|
33
35
  end
36
+ true
34
37
  else
35
38
  rel_dest = Monolith.formatter.rel_dir(@destination)
36
39
  Monolith.formatter.skip(@cookbook, "#{rel_dest} doesn't exist")
40
+ nil
37
41
  end
38
42
  end
39
43
 
@@ -8,16 +8,19 @@ module Monolith
8
8
  def install
9
9
  Monolith.formatter.debug("Skipping cookbook #{@cookbook.cookbook_name}" \
10
10
  "with path location")
11
+ nil
11
12
  end
12
13
 
13
14
  def update
14
15
  Monolith.formatter.debug("Skipping cookbook #{@cookbook.cookbook_name}" \
15
16
  "with path location")
17
+ nil
16
18
  end
17
19
 
18
20
  def clean
19
21
  Monolith.formatter.debug("Skipping cookbook #{@cookbook.cookbook_name}" \
20
22
  "with path location")
23
+ nil
21
24
  end
22
25
  end
23
26
  end
@@ -1,3 +1,3 @@
1
1
  module Monolith
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
data/test/helpers.rb CHANGED
@@ -12,6 +12,13 @@ module Monolith
12
12
  FileUtils.mkdir_p(tmp_path)
13
13
  end
14
14
 
15
+ def setup_tmp_git_repo
16
+ # Makes the test directory into a git repo for testing excludes
17
+ Dir.chdir(tmp_path) do
18
+ %x|git init|
19
+ end
20
+ end
21
+
15
22
  def make_git_repo(name)
16
23
  # Makes an example git repo with a single file in and one commit
17
24
  repo_path = tmp_path.join("git", name)
@@ -41,6 +48,18 @@ module Monolith
41
48
  end
42
49
  end
43
50
 
51
+ def make_path_cookbook(name)
52
+ # Makes an example git repo with a single file in and one commit
53
+ cb_path = tmp_path.join("cookbooks", name)
54
+ FileUtils.mkdir_p(cb_path)
55
+ Dir.chdir(cb_path) do
56
+ File.open('metadata.rb', 'w') do |f|
57
+ f.puts "name '#{name}'"
58
+ end
59
+ end
60
+ cb_path
61
+ end
62
+
44
63
  def make_berksfile(types)
45
64
  File.open(tmp_path.join('Berksfile'), 'w') do |berksfile|
46
65
  berksfile.puts "source 'https://supermarket.chef.io/'"
@@ -48,6 +67,9 @@ module Monolith
48
67
  if type == :git
49
68
  repo_path = make_git_repo('test_git')
50
69
  berksfile.puts("cookbook 'test_git', :git => '#{repo_path}'")
70
+ elsif type == :path
71
+ cb_path = make_path_cookbook('test_path')
72
+ berksfile.puts("cookbook 'test_path', :path => '#{cb_path}'")
51
73
  end
52
74
  end
53
75
  end
@@ -0,0 +1,29 @@
1
+ require 'minitest/autorun'
2
+ require_relative 'helpers'
3
+
4
+ # Fix 'Celluloid::Error Thread pool is not running' error.
5
+ # See https://github.com/celluloid/celluloid/pull/162
6
+ require 'celluloid/test'
7
+ Celluloid.init
8
+
9
+ require 'monolith'
10
+
11
+ class TestCommandInstall < MiniTest::Test
12
+ include Monolith::TestHelpers
13
+
14
+ def setup
15
+ clean_tmp_path
16
+ setup_tmp_git_repo
17
+ end
18
+
19
+ def test_install_command
20
+ efile = ".git/info/exclude"
21
+ make_berksfile([:git, :path]) do
22
+ Monolith::Command.start(['install', '-q'])
23
+ assert File.exist?(efile)
24
+ assert File.read(efile).include?("cookbooks/test_git")
25
+ assert File.exist?("cookbooks/test_path")
26
+ refute File.read(efile).include?("cookbooks/test_path")
27
+ end
28
+ end
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berks-monolith
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Harrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-02 00:00:00.000000000 Z
11
+ date: 2015-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: berkshelf
@@ -119,6 +119,7 @@ files:
119
119
  - test/test_command_clean.rb
120
120
  - test/test_command_install.rb
121
121
  - test/test_command_update.rb
122
+ - test/test_gitexclude.rb
122
123
  - test/test_gitlocation.rb
123
124
  homepage: http://github.com/mivok/berks-monolith
124
125
  licenses:
@@ -140,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
141
  version: '0'
141
142
  requirements: []
142
143
  rubyforge_project:
143
- rubygems_version: 2.4.1
144
+ rubygems_version: 2.4.4
144
145
  signing_key:
145
146
  specification_version: 4
146
147
  summary: Berkshelf monolithic repository tools
@@ -150,5 +151,6 @@ test_files:
150
151
  - test/test_command_clean.rb
151
152
  - test/test_command_install.rb
152
153
  - test/test_command_update.rb
154
+ - test/test_gitexclude.rb
153
155
  - test/test_gitlocation.rb
154
156
  has_rdoc: