librarian 0.0.4 → 0.0.5
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.
- data/README.md +33 -12
- data/features/chef/cli/init.feature +10 -0
- data/features/chef/cli/install.feature +3 -3
- data/lib/librarian/chef/cli.rb +8 -0
- data/lib/librarian/chef/templates/Cheffile +13 -0
- data/lib/librarian/cli.rb +5 -0
- data/lib/librarian/version.rb +1 -1
- data/lib/librarian.rb +1 -0
- data/librarian.gemspec +1 -1
- metadata +17 -15
data/README.md
CHANGED
@@ -14,19 +14,29 @@ Librarian::Chef
|
|
14
14
|
|
15
15
|
An adapter for Librarian applying to Chef cookbooks in a Chef Repository.
|
16
16
|
|
17
|
-
|
17
|
+
## Install librarian:
|
18
18
|
|
19
|
-
# install librarian onto your system
|
20
19
|
$ gem install librarian
|
21
20
|
|
22
|
-
$ cd ~/path/to/chef-repo
|
23
21
|
|
24
|
-
|
22
|
+
__Make sure your cookbooks directory is gitignored__
|
23
|
+
|
24
|
+
$ cd ~/path/to/chef-repo
|
25
25
|
$ git rm -r cookbooks # if the directory is present
|
26
|
-
$ mkdir cookbooks
|
27
26
|
$ echo cookbooks >> .gitignore
|
28
27
|
|
29
|
-
|
28
|
+
Note that librarian *takes over* your cookbooks directory
|
29
|
+
and manages it for you based on your Cheffile. Your
|
30
|
+
Cheffile becomes the authoritative source for what
|
31
|
+
cookbooks you have, rather than the directories in your
|
32
|
+
cookbooks directory.
|
33
|
+
|
34
|
+
__Make a Cheffile__
|
35
|
+
|
36
|
+
$ librarian-chef init
|
37
|
+
|
38
|
+
__Add dependencies and their sources to Cheffile__
|
39
|
+
|
30
40
|
$ cat Cheffile
|
31
41
|
site 'http://community.opscode.com/api/v1'
|
32
42
|
cookbook 'ntp'
|
@@ -35,14 +45,17 @@ Usage:
|
|
35
45
|
:git => 'https://github.com/fnichol/chef-rvm',
|
36
46
|
:ref => 'v0.7.1'
|
37
47
|
|
38
|
-
|
48
|
+
__install dependencies into ./cookbooks__
|
49
|
+
|
39
50
|
$ librarian-chef install [--clean] [--verbose]
|
40
51
|
|
41
|
-
|
52
|
+
__Check your Cheffile.lock into version control__
|
53
|
+
|
42
54
|
$ git add Cheffile.lock
|
43
55
|
$ git commit -m "I want these particular versions of these particular cookbooks from these particular."
|
44
56
|
|
45
|
-
|
57
|
+
__Update your cheffile with new/changed/removed constraints/sources/dependencies__
|
58
|
+
|
46
59
|
$ cat Cheffile
|
47
60
|
site 'http://community.opscode.com/api/v1'
|
48
61
|
cookbook 'ntp'
|
@@ -58,16 +71,19 @@ Usage:
|
|
58
71
|
$ git add Cheffile.lock
|
59
72
|
$ git commit -m "I also want these additional cookbooks."
|
60
73
|
|
61
|
-
|
74
|
+
__Update the version of a dependency__
|
75
|
+
|
62
76
|
$ librarian-chef update ntp timezone monit [--verbose]
|
63
77
|
$ git diff Cheffile.lock
|
64
78
|
$ git add Cheffile.lock
|
65
79
|
$ git commit -m "I want updated versions of these cookbooks."
|
66
80
|
|
67
|
-
|
81
|
+
__Push your changes to the git repository__
|
82
|
+
|
68
83
|
$ git push origin master
|
69
84
|
|
70
|
-
|
85
|
+
__Upload the cookbooks to your chef-server__
|
86
|
+
|
71
87
|
$ knife cookbook upload --all
|
72
88
|
|
73
89
|
You should `.gitignore` your `./cookbooks` directory.
|
@@ -88,6 +104,11 @@ In the above, make sure *not* to include the path to your `chef-repo/cookbooks`.
|
|
88
104
|
not have any `:path`-sourced cookbooks in your `Cheffile` sourced from that directory,
|
89
105
|
you still need to include your `chef-repo/site-cookbooks` directory in the above list.
|
90
106
|
|
107
|
+
What this integration does is when you use `knife`, it will enforce that your `Cheffile`
|
108
|
+
and `Cheffile.lock` are in sync. When you `knife cookbook upload`, it will be sure to
|
109
|
+
upload the same cookbook as is in your `Cheffile.lock`, regardless of what you've done
|
110
|
+
to your `chef-repo/cookbooks` directory.
|
111
|
+
|
91
112
|
License
|
92
113
|
-------
|
93
114
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Feature: cli/
|
1
|
+
Feature: cli/install
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -19,7 +19,7 @@ Feature: cli/catalog
|
|
19
19
|
cookbook 'apt',
|
20
20
|
:path => 'cookbook-sources'
|
21
21
|
"""
|
22
|
-
When I run
|
22
|
+
When I run `librarian-chef install --verbose`
|
23
23
|
Then the exit status should be 0
|
24
24
|
And the file "cookbooks/apt/metadata.yaml" should contain exactly:
|
25
25
|
"""
|
@@ -49,7 +49,7 @@ Feature: cli/catalog
|
|
49
49
|
path 'cookbook-sources'
|
50
50
|
cookbook 'main'
|
51
51
|
"""
|
52
|
-
When I run
|
52
|
+
When I run `librarian-chef install --verbose`
|
53
53
|
Then the exit status should be 0
|
54
54
|
And the file "cookbooks/main/metadata.yaml" should contain exactly:
|
55
55
|
"""
|
data/lib/librarian/chef/cli.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'librarian/helpers'
|
2
|
+
|
1
3
|
require 'librarian/cli'
|
2
4
|
require 'librarian/chef'
|
3
5
|
require 'librarian/chef/particularity'
|
@@ -9,6 +11,12 @@ module Librarian
|
|
9
11
|
include Particularity
|
10
12
|
extend Particularity
|
11
13
|
|
14
|
+
source_root Pathname.new(__FILE__).dirname.join("templates")
|
15
|
+
|
16
|
+
def init
|
17
|
+
copy_file root_module.specfile_name
|
18
|
+
end
|
19
|
+
|
12
20
|
end
|
13
21
|
end
|
14
22
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#^syntax detection
|
3
|
+
|
4
|
+
site 'http://community.opscode.com/api/v1'
|
5
|
+
|
6
|
+
# cookbook 'chef-client'
|
7
|
+
|
8
|
+
# cookbook 'rvm',
|
9
|
+
# :git => 'https://github.com/fnichol/chef-rvm'
|
10
|
+
|
11
|
+
# cookbook 'postgresql',
|
12
|
+
# :git => 'https://github.com/findsyou/cookbooks',
|
13
|
+
# :ref => 'postgresql-improvements'
|
data/lib/librarian/cli.rb
CHANGED
data/lib/librarian/version.rb
CHANGED
data/lib/librarian.rb
CHANGED
data/librarian.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: librarian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-08-
|
12
|
+
date: 2011-08-17 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &25703580 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *25703580
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &25703120 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *25703120
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: cucumber
|
38
|
-
requirement: &
|
38
|
+
requirement: &25702660 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *25702660
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: aruba
|
49
|
-
requirement: &
|
49
|
+
requirement: &25702220 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *25702220
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: webmock
|
60
|
-
requirement: &
|
60
|
+
requirement: &25701800 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,18 +65,18 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *25701800
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: chef
|
71
|
-
requirement: &
|
71
|
+
requirement: &25701280 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0.10'
|
77
|
-
type: :
|
77
|
+
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *25701280
|
80
80
|
description: Librarian
|
81
81
|
email:
|
82
82
|
- y_feldblum@yahoo.com
|
@@ -95,6 +95,7 @@ files:
|
|
95
95
|
- bin/librarian-chef
|
96
96
|
- bin/librarian-mock
|
97
97
|
- config/cucumber.yaml
|
98
|
+
- features/chef/cli/init.feature
|
98
99
|
- features/chef/cli/install.feature
|
99
100
|
- features/support/env.rb
|
100
101
|
- lib/librarian.rb
|
@@ -110,6 +111,7 @@ files:
|
|
110
111
|
- lib/librarian/chef/source/local.rb
|
111
112
|
- lib/librarian/chef/source/path.rb
|
112
113
|
- lib/librarian/chef/source/site.rb
|
114
|
+
- lib/librarian/chef/templates/Cheffile
|
113
115
|
- lib/librarian/cli.rb
|
114
116
|
- lib/librarian/dependency.rb
|
115
117
|
- lib/librarian/dsl.rb
|