falkorlib 0.2.15 → 0.3.0

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: 3da39e1f9507bfe588f465193ac436393c5774e2
4
- data.tar.gz: 8edc82df6d1acee0a5384c7343004e082ffa916d
3
+ metadata.gz: f29a576f48785a231d70a51920d2313915e135aa
4
+ data.tar.gz: ec1536f6f49fe5e96ccbd888f4f30aa77db49756
5
5
  SHA512:
6
- metadata.gz: f5615b6d4122c97d737d0e2b69512c9b4582fd202257ed44c079c310c7d75a15784f960e1d5787e107463a65761748e47d3dc30a16aed1a7dd7b340c9df254c2
7
- data.tar.gz: 07250c5253f5406bd2c414b46ea8db57d41ac94a8a20121b577662f58a2156d2bd581897ce0c97b4624436edfb874dace950770b9b2d881e7ad492f68fc9cf5b
6
+ metadata.gz: 9f4c56f5feedd8a4bd4ff135654ff9e846267946b06f396920045f1bf27d20b09f21325c9ebb2b4acefcb505742bba13f2fc56a0339b4427eb6123e2120c5dcd
7
+ data.tar.gz: 096f0cd26cf79b78ffbdda9fbb9ced24a6ad566055a510a833769d602cf5ad7824459b59d5b8447966325dc313d962da10fb7ffe4ab7f5b74e5729451720a488
@@ -1,10 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- falkorlib (0.2.15)
4
+ falkorlib (0.3.0)
5
5
  awesome_print (~> 1.2)
6
6
  configatron (~> 3.2)
7
7
  git_remote_branch (~> 0)
8
+ json (~> 1.8)
9
+ license-generator
8
10
  minigit (~> 0)
9
11
  rake (~> 10.1, >= 10.1.0)
10
12
  term-ansicolor (~> 1.3)
@@ -41,6 +43,8 @@ GEM
41
43
  json (1.8.1)
42
44
  launchy (2.4.2)
43
45
  addressable (~> 2.3)
46
+ license-generator (0.4.1)
47
+ thor
44
48
  method_source (0.8.2)
45
49
  minigit (0.0.4)
46
50
  multi_json (1.10.1)
@@ -73,7 +77,8 @@ GEM
73
77
  slop (3.5.0)
74
78
  term-ansicolor (1.3.0)
75
79
  tins (~> 1.0)
76
- tins (1.3.0)
80
+ thor (0.19.1)
81
+ tins (1.3.2)
77
82
  travis (1.6.14)
78
83
  addressable (~> 2.3)
79
84
  backports
data/README.md CHANGED
@@ -70,11 +70,14 @@ This library features two aspects
70
70
  c.debug = true
71
71
  end
72
72
 
73
+ You can also place a special file `.falkorlib.yaml` to customize the
74
+ FalkorLib settings
73
75
 
74
76
  * `FalkorLib::Git`: all [git](http://git-scm.com/) operations
75
77
  * `FalkorLib::GitFlow`: all [git-flow](http://nvie.com/posts/a-successful-git-branching-model/) operations
76
78
  * `FalkorLib::Version`: for the [semantic versioning](http://semver.org/)
77
79
  management of your project.
80
+ * `FalkorLib::Puppet`: for all [puppet](http://puppetlabs.com) operations
78
81
 
79
82
  * Some [rake](https://github.com/jimweirich/rake) tasks to facilitate common operations.
80
83
  In general you can simply embedded my tasks by adding the following header in your `Rakefile`:
@@ -152,6 +155,9 @@ _Note_: you probably want to
152
155
  [take a look at that script content](https://github.com/Falkor/falkorlib/blob/devel/binscripts/bootstrap.sh)
153
156
  before running the above command.
154
157
 
158
+ Alternatively, assuming you have installed the `falkorlib` gem, you can create a
159
+ minimal `Rakefile` (containing `require 'falkorlib'`) and run `rake bootstrap:rvm`.
160
+
155
161
  You can now complete your `Rakefile` depending on the tasks you wish to see.
156
162
  Below is a detailed overview of the implemented rake tasks in `FalkorLib`.
157
163
 
@@ -221,10 +227,8 @@ $> rake -T
221
227
  rake falkorlib:conf # Print the current configuration of FalkorLib
222
228
  rake git:feature:finish # Finalize the feature operation
223
229
  rake git:feature:start[name] # Start a new feature operation on the repository using the git-flow framework
224
- rake git:fetch # Fetch the latest changes on remotes
225
230
  rake git:flow:init # Initialize your local clone of the repository for the git-flow management
226
- rake git:push # Push your modifications onto the remote branches
227
- rake git:up # Update your local copy of the repository from GIT server
231
+ rake setup # Setup the repository
228
232
  rake version:bump:major # Prepare the major release of the repository
229
233
  rake version:bump:minor # Prepare the minor release of the repository
230
234
  rake version:bump:patch # Prepare the patch release of the repository
@@ -130,7 +130,8 @@ Gem::Specification.new do |s|
130
130
  s.add_runtime_dependency("term-ansicolor", "~> 1.3")
131
131
  s.add_runtime_dependency("configatron", "~> 3.2")
132
132
  s.add_runtime_dependency("awesome_print", "~> 1.2")
133
-
133
+ s.add_runtime_dependency("json", "~> 1.8")
134
+ s.add_runtime_dependency("license-generator")
134
135
 
135
136
  #
136
137
  # One call to add_dependency('gem_name', 'gem version requirement') for each
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Ven 2014-06-06 17:06 svarrette>
3
+ # Time-stamp: <Sam 2014-08-23 23:18 svarrette>
4
4
  ################################################################################
5
5
  # _____ _ _ _ _ _
6
6
  # | ___|_ _| | | _____ _ __| | (_) |__
@@ -29,11 +29,23 @@ end
29
29
  require 'yaml'
30
30
 
31
31
  # Sebastien Varrette aka Falkor's Common library to share Ruby code
32
- # and `{rake,cap}` tasks
32
+ # and `{rake,cap}` tasks
33
33
  module FalkorLib
34
34
 
35
+ # Return the root directory of the gem
36
+ def self.root
37
+ File.expand_path '../..', __FILE__
38
+ end
39
+
40
+ def self.lib
41
+ File.join root, 'lib'
42
+ end
43
+
44
+ def self.templates
45
+ File.join root, 'templates'
46
+ end
47
+
35
48
  end # module FalkorLib
36
49
 
37
50
  require "falkorlib/version"
38
51
  require "falkorlib/loader"
39
-
@@ -1,10 +1,11 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Sam 2014-07-12 21:43 svarrette>
3
+ # Time-stamp: <Lun 2014-08-25 23:43 svarrette>
4
4
  ################################################################################
5
5
 
6
6
  require "falkorlib"
7
7
  require 'open3'
8
+ require 'erb' # required for module generation
8
9
 
9
10
 
10
11
  module FalkorLib #:nodoc:
@@ -165,57 +166,71 @@ module FalkorLib #:nodoc:
165
166
  exit_status
166
167
  end
167
168
 
168
- ## List items from a glob pattern
169
- ## list_items
169
+ ## List items from a glob pattern to ask for a unique choice
170
+ # Supported options:
171
+ # :only_files [boolean]: list only files in the glob
172
+ # :only_dirs [boolean]: list only directories in the glob
173
+ # :pattern_include [array of strings]: pattern(s) to include for listing
174
+ # :pattern_exclude [array of strings]: pattern(s) to exclude for listing
170
175
  def list_items(glob_pattern, options = {})
171
176
  list = { 0 => 'Exit' }
172
177
  index = 1
173
- raw_list = { }
174
-
175
- Dir["#{glob_pattern}"].each do |elem|
176
- #puts "=> element '#{elem}' - dir = #{File.directory?(elem)}; file = #{File.file?(elem)}"
177
- next if (! options[:only_files].nil?) && options[:only_files] && File.directory?(elem)
178
- next if (! options[:only_dirs].nil?) && options[:only_dirs] && File.file?(elem)
179
- entry = File.basename(elem)
180
- unless options[:pattern_include].nil?
181
- select_entry = false
182
- options[:pattern_include].each do |pattern|
183
- #puts "considering pattern '#{pattern}' on entry '#{entry}'"
184
- select_entry |= entry =~ /#{pattern}/
185
- end
186
- next unless select_entry
187
- end
188
- unless options[:pattern_exclude].nil?
189
- select_entry = false
190
- options[:pattern_exclude].each do |pattern|
191
- #puts "considering pattern '#{pattern}' on entry '#{entry}'"
192
- select_entry |= entry =~ /#{pattern}/
193
- end
194
- next if select_entry
195
- end
196
- #puts "selected entry = '#{entry}'"
197
- list[index] = entry
198
- raw_list[index] = elem
199
- index += 1
178
+ raw_list = { }
179
+
180
+ Dir["#{glob_pattern}"].each do |elem|
181
+ #puts "=> element '#{elem}' - dir = #{File.directory?(elem)}; file = #{File.file?(elem)}"
182
+ next if (! options[:only_files].nil?) && options[:only_files] && File.directory?(elem)
183
+ next if (! options[:only_dirs].nil?) && options[:only_dirs] && File.file?(elem)
184
+ entry = File.basename(elem)
185
+ unless options[:pattern_include].nil?
186
+ select_entry = false
187
+ options[:pattern_include].each do |pattern|
188
+ #puts "considering pattern '#{pattern}' on entry '#{entry}'"
189
+ select_entry |= entry =~ /#{pattern}/
190
+ end
191
+ next unless select_entry
192
+ end
193
+ unless options[:pattern_exclude].nil?
194
+ select_entry = false
195
+ options[:pattern_exclude].each do |pattern|
196
+ #puts "considering pattern '#{pattern}' on entry '#{entry}'"
197
+ select_entry |= entry =~ /#{pattern}/
198
+ end
199
+ next if select_entry
200
+ end
201
+ #puts "selected entry = '#{entry}'"
202
+ list[index] = entry
203
+ raw_list[index] = elem
204
+ index += 1
200
205
  end
201
- text = options[:text].nil? ? "select the index" : options[:text]
202
- default_idx = options[:default].nil? ? 0 : options[:default]
203
- raise SystemExit.new('Empty list') if index == 1
204
- # puts list.to_yaml
205
- # answer = ask("=> #{text}", "#{default_idx}")
206
- # raise SystemExit.new('exiting selection') if answer == '0'
207
- # raise RangeError.new('Undefined index') if Integer(answer) >= list.length
208
- # raw_list[Integer(answer)]
209
- select_from(list, text, default_idx, raw_list)
206
+ text = options[:text].nil? ? "select the index" : options[:text]
207
+ default_idx = options[:default].nil? ? 0 : options[:default]
208
+ raise SystemExit.new('Empty list') if index == 1
209
+ # puts list.to_yaml
210
+ # answer = ask("=> #{text}", "#{default_idx}")
211
+ # raise SystemExit.new('exiting selection') if answer == '0'
212
+ # raise RangeError.new('Undefined index') if Integer(answer) >= list.length
213
+ # raw_list[Integer(answer)]
214
+ select_from(list, text, default_idx, raw_list)
210
215
  end
211
216
 
212
217
  ## Display a indexed list to select an i
213
218
  def select_from(list, text = 'Select the index', default_idx = 0, raw_list = list)
214
- puts list.to_yaml
215
- answer = ask("=> #{text}", "#{default_idx}")
216
- raise SystemExit.new('exiting selection') if answer == '0'
217
- raise RangeError.new('Undefined index') if Integer(answer) >= list.length
218
- raw_list[Integer(answer)]
219
+ error "list and raw_list differs in size" if list.size != raw_list.size
220
+ l = list
221
+ raw_l = raw_list
222
+ if list.kind_of?(Array)
223
+ l = raw_l = { 0 => 'Exit' }
224
+ list.each_with_index do |e, idx|
225
+ l[idx+1] = e
226
+ raw_l[idx+1] = raw_list[idx]
227
+ end
228
+ end
229
+ puts l.to_yaml
230
+ answer = ask("=> #{text}", "#{default_idx}")
231
+ raise SystemExit.new('exiting selection') if answer == '0'
232
+ raise RangeError.new('Undefined index') if Integer(answer) >= l.length
233
+ raw_l[Integer(answer)]
219
234
  end # select_from
220
235
 
221
236
 
@@ -237,6 +252,88 @@ module FalkorLib #:nodoc:
237
252
  end
238
253
  end
239
254
 
255
+ #################################
256
+ ### [ERB] template generation ###
257
+ #################################
258
+
259
+ # Bootstrap the destination directory `rootdir` using the template
260
+ # directory `templatedir`. the hash table `config` hosts the elements to
261
+ # feed ERB files which **should** have the extension .erb.
262
+ # The initialization is performed as follows:
263
+ # * a rsync process is initiated to duplicate the directory structure
264
+ # and the symlinks, and exclude .erb files
265
+ # * each erb files (thus with extension .erb) is interpreted, the
266
+ # corresponding file is generated without the .erb extension
267
+ # Supported options:
268
+ # :erb_exclude [array of strings]: pattern(s) to exclude from erb file
269
+ # interpretation and thus to copy 'as is'
270
+ def init_from_template(templatedir, rootdir, config = {}, options = {})
271
+ error "Unable to find the template directory" unless File.directory?(templatedir)
272
+ warning "about to initialize/update the directory #{rootdir}"
273
+ really_continue?
274
+ run %{ mkdir -p #{rootdir} } unless File.directory?( rootdir )
275
+ run %{ rsync --exclude '*.erb' -avzu #{templatedir}/ #{rootdir}/ }
276
+ Dir["#{templatedir}/**/*.erb"].each do |erbfile|
277
+ relative_outdir = Pathname.new( File.realpath( File.dirname(erbfile) )).relative_path_from Pathname.new(templatedir)
278
+ filename = File.basename(erbfile, '.erb')
279
+ outdir = File.realpath( File.join(rootdir, relative_outdir.to_s) )
280
+ outfile = File.join(outdir, filename)
281
+ unless options[:erb_exclude].nil?
282
+ exclude_entry = false
283
+ options[:erb_exclude].each do |pattern|
284
+ exclude_entry |= erbfile =~ /#{pattern}/
285
+ end
286
+ if exclude_entry
287
+ info "copying non-interpreted ERB file"
288
+ # copy this file since it has been probably excluded from teh rsync process
289
+ run %{ cp #{erbfile} #{outdir}/ }
290
+ next
291
+ end
292
+ end
293
+ # Let's go
294
+ info "updating '#{relative_outdir.to_s}/#{filename}'"
295
+ puts " using ERB template '#{erbfile}'"
296
+ template = File.read("#{erbfile}")
297
+ output = ERB.new(template, nil, '<>')
298
+ if File.exists?( outfile )
299
+ warn "the file '#{outfile}' already exists and will be overwritten."
300
+ error "TODO: watch the diff ;)"
301
+ else
302
+ watch = ask( cyan(" ==> Do you want to see the generated file before commiting the writing (y|N)"), 'No')
303
+ puts output.result(binding) if watch =~ /y.*/i
304
+ end
305
+ proceed = ask( cyan(" ==> proceed with the writing (Y|n)"), 'Yes')
306
+ next if proceed =~ /n.*/i
307
+ info("=> writing #{outfile}")
308
+ File.open("#{outfile}", "w+") do |f|
309
+ f.puts output.result(binding)
310
+ end
311
+ end
312
+ end
313
+
314
+ ### RVM init
315
+ def init_rvm(rootdir = Dir.pwd, gemset = '')
316
+ rvm_files = {
317
+ :version => File.join(rootdir, '.ruby-version'),
318
+ :gemset => File.join(rootdir, '.ruby-gemset')
319
+ }
320
+ unless File.exists?( "#{rvm_files[:version]}")
321
+ v = select_from(FalkorLib.config[:rvm][:rubies],
322
+ "Select RVM ruby to configure for this directory",
323
+ 3)
324
+ File.open( rvm_files[:version], 'w') do |f|
325
+ f.puts v
326
+ end
327
+ end
328
+ unless File.exists?( "#{rvm_files[:gemset]}")
329
+ g = gemset.empty? ? ask("Enter RVM gemset name for this directory", File.basename(rootdir)) : gemset
330
+ File.open( rvm_files[:gemset], 'w') do |f|
331
+ f.puts g
332
+ end
333
+ end
334
+
335
+ end
336
+
240
337
 
241
338
  end
242
339
  end
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Ven 2014-06-20 12:04 svarrette>
3
+ # Time-stamp: <Lun 2014-08-25 22:29 svarrette>
4
4
  ################################################################################
5
5
  # FalkorLib Configuration
6
6
  #
@@ -40,8 +40,12 @@ module FalkorLib #:nodoc:
40
40
  module Config #:nodoc:
41
41
  # Defaults global settings
42
42
  DEFAULTS = {
43
- :debug => false,
44
- :root => Dir.pwd
43
+ :debug => false,
44
+ :root => Dir.pwd,
45
+ :custom_cfg => '.falkorlib.yaml',
46
+ :rvm => {
47
+ :rubies => [ '1.9.3', '2.0.0', '2.1.0']
48
+ }
45
49
  }
46
50
 
47
51
  module_function
@@ -50,11 +54,17 @@ module FalkorLib #:nodoc:
50
54
  # The hash is built depending on the loaded files.
51
55
  def default
52
56
  res = FalkorLib::Config::DEFAULTS
53
- $LOADED_FEATURES.each do |path|
54
- res[:git] = FalkorLib::Config::Git::DEFAULTS if path.include?('lib/falkorlib/git.rb')
55
- res[:gitflow] = FalkorLib::Config::GitFlow::DEFAULTS if path.include?('lib/falkorlib/git.rb')
57
+ $LOADED_FEATURES.each do |path|
58
+ res[:git] = FalkorLib::Config::Git::DEFAULTS if path.include?('lib/falkorlib/git.rb')
59
+ res[:gitflow] = FalkorLib::Config::GitFlow::DEFAULTS if path.include?('lib/falkorlib/git.rb')
56
60
  res[:versioning] = FalkorLib::Config::Versioning::DEFAULTS if path.include?('lib/falkorlib/versioning.rb')
61
+ res[:puppet] = FalkorLib::Config::Puppet::DEFAULTS if path.include?('lib/falkorlib/puppet.rb')
57
62
  end
63
+ # Check the potential local customizations
64
+ custom_cfg = File.join( res[:root], res[:custom_cfg])
65
+ if File.exists?( custom_cfg )
66
+ res.merge!( load_config( custom_cfg ) )
67
+ end
58
68
  res
59
69
  end
60
70
 
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Jeu 2014-06-26 12:35 svarrette>
3
+ # Time-stamp: <Mar 2014-08-26 11:54 svarrette>
4
4
  ################################################################################
5
5
  # Interface for the main Git operations
6
6
  #
@@ -100,6 +100,7 @@ module FalkorLib #:nodoc:
100
100
  end
101
101
  end
102
102
  exit_status = 1
103
+ #info "Initialize "
103
104
  Dir.chdir( path ) do
104
105
  execute "git init" unless FalkorLib.config.debug
105
106
  exit_status = $?.to_i
@@ -209,8 +210,6 @@ module FalkorLib #:nodoc:
209
210
  g.capturing.ls_files.split
210
211
  end
211
212
 
212
-
213
-
214
213
  ## Add a file/whatever to Git and commit it
215
214
  def add(path, msg = "")
216
215
  exit_status = 0
@@ -251,6 +250,11 @@ module FalkorLib #:nodoc:
251
250
  g.capturing.remote.split()
252
251
  end
253
252
 
253
+ ## remotes?(path = Dir.pw)
254
+ def remotes?(path = Dir.pwd)
255
+ return ! remotes(path).empty?
256
+ end
257
+
254
258
  ## Initialize git subtrees from the configuration
255
259
  def submodule_init(path = Dir.pwd)
256
260
  exit_status = 1
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Jeu 2014-06-26 10:45 svarrette>
3
+ # Time-stamp: <Mar 2014-08-26 11:57 svarrette>
4
4
  ################################################################################
5
5
  # Management of Git Flow operations
6
6
 
@@ -49,9 +49,11 @@ module FalkorLib
49
49
  unless FalkorLib::Git.has_commits?( git_root_dir)
50
50
  warn "Not yet any commit detected in this repository."
51
51
  readme = 'README.md'
52
- answer = ask(cyan("=> Shall one be initiated with a #{readme} file (Y|n)?"), 'Yes')
53
- exit 0 if answer =~ /n.*/i
54
- FileUtils.touch(readme)
52
+ unless File.exists?( readme )
53
+ answer = ask(cyan("=> initialize a commit with a #{readme} file (Y|n)?"), 'Yes')
54
+ exit 0 if answer =~ /n.*/i
55
+ FileUtils.touch(readme)
56
+ end
55
57
  FalkorLib::Git.add(readme, "Initiate the repository with a '#{readme}' file")
56
58
  end
57
59
  branches = FalkorLib::Git.list_branch(path)
@@ -104,6 +106,16 @@ module FalkorLib
104
106
  exit_status
105
107
  end
106
108
 
109
+ ## Check if git-flow is initialized
110
+ def init?(path = Dir.pwd)
111
+ res = FalkorLib::Git.init?(path)
112
+ Dir.chdir(path) do
113
+ gf_check = `git config --get-regexp 'gitflow*'`
114
+ res &= ! gf_check.empty?
115
+ end
116
+ res
117
+ end # init?(path = Dir.pwd)
118
+
107
119
 
108
120
  ## generic function to run any of the gitflow commands
109
121
  def command(name, type = 'feature', action = 'start', path = Dir.pwd, optional_args = '')
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Mer 2014-06-18 17:17 svarrette>
3
+ # Time-stamp: <Lun 2014-08-25 21:04 svarrette>
4
4
  ################################################################################
5
5
  # Place the component you wish to see loaded
6
6
 
@@ -8,4 +8,5 @@ require "falkorlib/config"
8
8
  require "falkorlib/common"
9
9
  require "falkorlib/git"
10
10
  require "falkorlib/versioning"
11
+ require "falkorlib/puppet"
11
12
 
@@ -0,0 +1,17 @@
1
+ # -*- encoding: utf-8 -*-
2
+ ################################################################################
3
+ # Time-stamp: <Lun 2014-08-25 21:35 svarrette>
4
+ ################################################################################
5
+ # Management of [Puppet](http://puppetlabs.com/) operations
6
+
7
+ require "falkorlib"
8
+
9
+ module FalkorLib #:nodoc:
10
+
11
+ end # module FalkorLib
12
+
13
+ require "falkorlib/puppet/base"
14
+ require "falkorlib/puppet/modules"
15
+
16
+
17
+
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+ ################################################################################
3
+ # Time-stamp: <Lun 2014-08-25 21:34 svarrette>
4
+ ################################################################################
5
+ # Interface for the main Puppet operations
6
+ #
7
+
8
+ require "falkorlib"
9
+ require "falkorlib/common"
10
+
11
+
12
+ include FalkorLib::Common
13
+
14
+ module FalkorLib #:nodoc:
15
+ module Config
16
+ module Puppet
17
+ # Puppet defaults for FalkorLib
18
+ DEFAULTS = {
19
+ :modulesdir => File.join(Dir.pwd, 'modules')
20
+ }
21
+ end
22
+ end
23
+
24
+ module Puppet #:nodoc
25
+
26
+ end
27
+
28
+
29
+
30
+ end
@@ -0,0 +1,132 @@
1
+ # -*- encoding: utf-8 -*-
2
+ ################################################################################
3
+ # Time-stamp: <Mar 2014-08-26 14:17 svarrette>
4
+ ################################################################################
5
+ # Interface for the main Puppet Module operations
6
+ #
7
+
8
+ require "falkorlib"
9
+ require "falkorlib/common"
10
+
11
+ require "pathname"
12
+
13
+ include FalkorLib::Common
14
+
15
+ module FalkorLib #:nodoc:
16
+ module Config
17
+ module Puppet
18
+ module Modules
19
+ DEFAULTS = {
20
+ :metadata => {
21
+ :name => '',
22
+ :version => '0.0.1',
23
+ :author => "#{ENV['GIT_AUTHOR_NAME']}",
24
+ :mail => "#{ENV['GIT_AUTHOR_EMAIL']}",
25
+ :summary => "rtfm",
26
+ :description => '',
27
+ :license => 'GPLv3',
28
+ :source => '',
29
+ :project_page => '',
30
+ :issue_url => '',
31
+ :dependencies => [],
32
+ :operatingsystem_support => [],
33
+ :tags => []
34
+ },
35
+ :licenses => [
36
+ "Apache-2.0",
37
+ "BSD",
38
+ "GPL-2.0",
39
+ "GPL-3.0",
40
+ "LGPL-2.1",
41
+ "LGPL-3.0",
42
+ "MIT",
43
+ "Mozilla-2.0"
44
+ ]
45
+ }
46
+ end
47
+ end
48
+ end
49
+
50
+ # Puppet actions
51
+ module Puppet
52
+ # Management of Puppet Modules operations
53
+ module Modules
54
+ module_function
55
+
56
+ ## Initialize a new Puppet Module named `name` in `rootdir`.
57
+ # Supported options:
58
+ # * :no_iteraction [boolean]
59
+ def init(rootdir = Dir.pwd, name = '', options = {})
60
+ config = {}
61
+ login = `whoami`.chomp
62
+ config[:name] = name unless name.empty?
63
+ FalkorLib::Config::Puppet::Modules::DEFAULTS[:metadata].each do |k,v|
64
+ next if v.kind_of?(Array) or k == :license
65
+ next if k == :name and ! name.empty?
66
+ default_answer = case k
67
+ when :project_page
68
+ config[:source].nil? ? v : config[:source]
69
+ when :name
70
+ File.basename(rootdir).gsub(/^puppet-/, '')
71
+ when :issue_url
72
+ config[:project_page].nil? ? v : "#{config[:project_page]}/issues"
73
+ when :description
74
+ config[:summary].nil? ? v : "#{config[:summary]}"
75
+ when :source
76
+ v.empty? ? "https://github.com/#{`whoami`.chomp}/#{config[:name]}" : v
77
+ else
78
+ v
79
+ end
80
+ config[k.to_sym] = ask( "\t" + sprintf("%-20s", "Module #{k}"), default_answer)
81
+ end
82
+ name = config[:name].gsub(/.*-/, '')
83
+ tags = ask("\tKeywords (comma-separated list of tags)", name)
84
+ config[:tags] = tags.split(',')
85
+ license = select_from(FalkorLib::Config::Puppet::Modules::DEFAULTS[:licenses],
86
+ 'Select the license index for the Puppet module:',
87
+ 1)
88
+ config[:license] = license.downcase unless license.empty?
89
+ puts "\t" + sprintf("%-20s", "Module License:") + config[:license]
90
+
91
+ #ap config
92
+ # Bootstrap the directory
93
+ templatedir = File.join( FalkorLib.templates, 'puppet', 'modules')
94
+ init_from_template(templatedir, rootdir, config, {
95
+ :erb_exclude => [ 'templates\/[^\/]*\.erb$' ]
96
+ })
97
+ # Rename the files / element templatename
98
+ Dir["#{rootdir}/**/*"].each do |e|
99
+ next unless e =~ /templatename/
100
+ info "renaming #{e}"
101
+ newname = e.gsub(/templatename/, "#{name}")
102
+ run %{ mv #{e} #{newname} }
103
+ end
104
+
105
+ info "Generating the License file"
106
+ Dir.chdir(rootdir) do
107
+ run %{licgen #{config[:license]} #{config[:author]}}
108
+ end
109
+ info "Initialize RVM"
110
+ init_rvm(rootdir)
111
+ unless FalkorLib::GitFlow.init?(rootdir)
112
+ warn "Git [Flow] is not initialized in #{rootdir}."
113
+ a = ask("Proceed to git-flow initialization (Y|n)", 'Yes')
114
+ FalkorLib::GitFlow.init(rootdir) unless a =~ /n.*/i
115
+ end
116
+
117
+ # Propose to commit the key files
118
+ if FalkorLib::Git.init?(rootdir)
119
+ if FalkorLib::GitFlow.init?(rootdir)
120
+ info "=> preparing git-flow feature for the newly created module '#{config[:name]}'"
121
+ FalkorLib::GitFlow.start('feature', "init_#{name}", rootdir)
122
+ end
123
+ [ 'metadata.json', 'LICENSE', '.gitignore', 'Gemfile', 'Rakefile'].each do |f|
124
+ FalkorLib::Git.add(File.join(rootdir, f))
125
+ end
126
+ end
127
+ end # init
128
+
129
+
130
+ end # module FalkorLib::Puppet::Modules
131
+ end # module FalkorLib::Puppet
132
+ end # module FalkorLib
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ ################################################################################
3
+ # Time-stamp: <Lun 2014-08-25 21:46 svarrette>
4
+ ################################################################################
5
+ #
6
+ # FalkorLib rake tasks to pilot Puppet operations
7
+ #
8
+
9
+ require 'rake'
10
+ require 'falkorlib'
11
+ require 'falkorlib/tasks'
12
+
13
+ module FalkorLib #:nodoc:
14
+ class PuppetTasks
15
+ include Rake::DSL if defined? Rake::DSL
16
+
17
+ # Install the puppet tasks for Rake
18
+ def install_tasks
19
+ load 'falkorlib/tasks/puppet_modules.rake'
20
+ end
21
+ end
22
+ end
23
+
24
+ FalkorLib::PuppetTasks.new.install_tasks
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Mer 2014-08-20 17:21 svarrette>
3
+ # Time-stamp: <Lun 2014-08-25 23:25 svarrette>
4
4
  ################################################################################
5
5
  #
6
6
  # Default FalkorLib rake tasks
@@ -17,7 +17,7 @@ FalkorLib.config.debug = ARGV.include?('DEBUG')
17
17
  #.....................
18
18
  namespace :falkorlib do
19
19
  ########### falkorlib:conf ###########
20
- #desc "Print the current configuration of FalkorLib"
20
+ desc "Print the current configuration of FalkorLib"
21
21
  task :conf do
22
22
  puts FalkorLib.config.to_yaml
23
23
  end
@@ -37,12 +37,18 @@ namespace :bootstrap do
37
37
  task :rvm do
38
38
  info "Boostrap RVM for this repository -- see https://rvm.io"
39
39
  error "RVM is not installed -- see https://rvm.io/rvm/install for instructions" unless command?('rvm')
40
- ['version', 'gemset'].each do |t|
41
- error "unable to find the .ruby-#{t} file" unless File.exists?(".ruby-#{t}")
42
- end
40
+ init_rvm(Dir.pwd)
41
+ # ['version', 'gemset'].each do |t|
42
+ # error "unable to find the .ruby-#{t} file" unless File.exists?(".ruby-#{t}")
43
+ # end
43
44
  info "=> initialize RVM -- see http://rvm.io"
44
45
  run %{ rvm install `cat .ruby-version` }
45
-
46
+ rvm_current = `rvm current`
47
+ if rvm_current.empty? or rvm_current != "`cat .ruby-version`@`cat .ruby-gemset`"
48
+ warn "You need to manually force the reloading of the RVM configuration."
49
+ warn "To do that, simply run \n\t\tcd .. && cd -"
50
+ error "manual RVM reloading required"
51
+ end
46
52
  #rvmenv = %x( rvm env --path -- `cat .ruby-version`@`cat .ruby-gemset`)
47
53
  # info "=> Force reloading RVM configuration within $PWD"
48
54
  # run %{
@@ -1,6 +1,6 @@
1
1
  ################################################################################
2
2
  # gitflow.rake - Special tasks for the management of Git [Flow] operations
3
- # Time-stamp: <Mar 2014-08-19 10:20 svarrette>
3
+ # Time-stamp: <Sam 2014-08-23 15:19 svarrette>
4
4
  #
5
5
  # Copyright (c) 2014 Sebastien Varrette <Sebastien.Varrette@uni.lu>
6
6
  # http://varrette.gforge.uni.lu
@@ -16,9 +16,9 @@ namespace :git do
16
16
  include FalkorLib::Common
17
17
  git_root_dir = FalkorLib::Git.rootdir
18
18
 
19
- ########### git:init ###########
20
- #desc "Initialize Git repository"
21
- task :init => [ 'git:flow:init' ]
19
+ ########### git:init ###########
20
+ #desc "Initialize Git repository"
21
+ task :init => [ 'git:flow:init' ]
22
22
 
23
23
  #.....................
24
24
  namespace :flow do
@@ -26,7 +26,7 @@ namespace :git do
26
26
  ########### git:flow:init ###########
27
27
  desc "Initialize your local clone of the repository for the git-flow management"
28
28
  task :init do |t|
29
- info t.comment
29
+ info t.comment
30
30
  FalkorLib::GitFlow.init(git_root_dir)
31
31
  end # task init
32
32
 
@@ -45,7 +45,7 @@ namespace :git do
45
45
  Rake::Task['git:up'].invoke unless FalkorLib::Git.remotes.empty?
46
46
  info "=> prepare new 'feature' using git flow"
47
47
  o = FalkorLib::GitFlow.start('feature', name)
48
- error "Git flow feature operation failed" unless o == 0
48
+ error "Git flow feature operation failed" unless o == 0
49
49
  # Now you should be in the new branch
50
50
  end
51
51
 
@@ -61,7 +61,7 @@ namespace :git do
61
61
  info t.comment
62
62
  o = FalkorLib::GitFlow.finish('feature', name)
63
63
  error "Git flow feature operation failed" unless o == 0
64
- unless FalkorLib::Git.remotes.empty?
64
+ unless FalkorLib::Git.remotes.empty?
65
65
  info "=> about to update remote tracked branches"
66
66
  really_continue?
67
67
  Rake::Task['git:push'].invoke
@@ -103,22 +103,22 @@ namespace :version do
103
103
  Rake::Task['git:up'].invoke unless FalkorLib::Git.remotes.empty?
104
104
  info "=> prepare release using git flow"
105
105
  o = FalkorLib::GitFlow.start('release', release_version)
106
- error "Git flow release process failed" unless o == 0
106
+ error "Git flow release process failed" unless o == 0
107
107
  # Now you should be in the new branch
108
108
  current_branch = FalkorLib::Git.branch?
109
109
  expected_branch = FalkorLib.config[:gitflow][:prefix][:release] + release_version
110
110
  if (current_branch == expected_branch)
111
111
  FalkorLib::Versioning.set_version(release_version)
112
- if (! FalkorLib.config[:versioning].nil?) &&
113
- FalkorLib.config[:versioning][:type] == 'gem' &&
114
- File.exists?(File.join(FalkorLib::Git.rootdir, 'Gemfile'))
115
- info "Updating Gemfile information"
116
- run %{
117
- # Update cache info
112
+ if (! FalkorLib.config[:versioning].nil?) &&
113
+ FalkorLib.config[:versioning][:type] == 'gem' &&
114
+ File.exists?(File.join(FalkorLib::Git.rootdir, 'Gemfile'))
115
+ info "Updating Gemfile information"
116
+ run %{
117
+ # Update cache info
118
118
  bundle list > /dev/null
119
119
  git commit -s -m "Update Gemfile.lock accordingly" Gemfile.lock
120
120
  }
121
- end
121
+ end
122
122
  warning "The version number has already been bumped"
123
123
  warning "==> run 'rake version:release' to finalize the release and merge the current version of the repository into the '#{FalkorLib.config[:gitflow][:branches][:master]}' branch"
124
124
  else
@@ -128,35 +128,37 @@ namespace :version do
128
128
  end
129
129
  end # namespace version:bump
130
130
 
131
- ########### release ###########
132
- desc "Finalize the release of a given bumped version"
133
- task :release do |t|
134
- version = FalkorLib::Versioning.get_version
135
- branch = FalkorLib::Git.branch?
136
- expected_branch = FalkorLib.config[:gitflow][:prefix][:release] + version
137
- error "You are not in the '#{expected_branch}' branch but in the '#{branch}' one. May be you forgot to run 'rake version:bump:{patch,minor,major}' first" if branch != expected_branch
138
- info "=> Finalize the release of the version '#{version}' into the '#{FalkorLib.config[:gitflow][:branches][:master]}' branch/environment"
139
- o = FalkorLib::GitFlow.finish('release', version, Dir.pwd, '-s')
140
- error "Git flow release process failed" unless o == 0
141
- info("=> about to update remote tracked branches")
142
- really_continue?
143
- FalkorLib.config[:gitflow][:branches].each do |type, branch|
144
- run %{
145
- git checkout #{branch}
146
- git push origin
147
- }
148
- end
149
- run %{ git push origin --tags }
150
- #info "Update the changelog"
151
- if (! FalkorLib.config[:versioning].nil?) &&
152
- FalkorLib.config[:versioning][:type] == 'gem'
153
- warn "About to push the released new gem (version #{version}) to the gem server (rybygems.org)"
154
- really_continue?
155
- Rake::Task['gem:release'].invoke
156
- end
157
-
158
- #Rake::Task['git:push'].invoke
159
- end # task version:release
131
+ ########### release ###########
132
+ desc "Finalize the release of a given bumped version"
133
+ task :release do |t|
134
+ version = FalkorLib::Versioning.get_version
135
+ branch = FalkorLib::Git.branch?
136
+ expected_branch = FalkorLib.config[:gitflow][:prefix][:release] + version
137
+ error "You are not in the '#{expected_branch}' branch but in the '#{branch}' one. May be you forgot to run 'rake version:bump:{patch,minor,major}' first" if branch != expected_branch
138
+ info "=> Finalize the release of the version '#{version}' into the '#{FalkorLib.config[:gitflow][:branches][:master]}' branch/environment"
139
+ o = FalkorLib::GitFlow.finish('release', version, Dir.pwd, '-s')
140
+ error "Git flow release process failed" unless o == 0
141
+ if FalkorLib::Git.remotes?
142
+ info("=> about to update remote tracked branches")
143
+ really_continue?
144
+ FalkorLib.config[:gitflow][:branches].each do |type, branch|
145
+ run %{
146
+ git checkout #{branch}
147
+ git push origin
148
+ }
149
+ end
150
+ run %{ git push origin --tags }
151
+ end
152
+ #info "Update the changelog"
153
+ if (! FalkorLib.config[:versioning].nil?) &&
154
+ FalkorLib.config[:versioning][:type] == 'gem'
155
+ warn "About to push the released new gem (version #{version}) to the gem server (rybygems.org)"
156
+ really_continue?
157
+ Rake::Task['gem:release'].invoke
158
+ end
159
+
160
+ #Rake::Task['git:push'].invoke
161
+ end # task version:release
160
162
 
161
163
 
162
164
 
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ ################################################################################
3
+ # Time-stamp: <Lun 2014-08-25 21:46 svarrette>
4
+ ################################################################################
5
+ #
6
+ # FalkorLib rake tasks to pilot Puppet operations
7
+ #
8
+
9
+ require 'rake'
10
+ require 'falkorlib'
11
+ require 'falkorlib/tasks'
12
+
13
+ module FalkorLib #:nodoc:
14
+ class PuppetTasks
15
+ include Rake::DSL if defined? Rake::DSL
16
+
17
+ # Install the puppet tasks for Rake
18
+ def install_tasks
19
+ load 'falkorlib/tasks/puppet_modules.rake'
20
+ end
21
+ end
22
+ end
23
+
24
+ FalkorLib::PuppetTasks.new.install_tasks
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+ ################################################################################
3
+ # puppet_modules.rake - Special tasks for the management of Puppet modules
4
+ # Time-stamp: <Lun 2014-08-25 22:54 svarrette>
5
+ #
6
+ # Copyright (c) 2014 Sebastien Varrette <Sebastien.Varrette@uni.lu>
7
+ # http://varrette.gforge.uni.lu
8
+ ################################################################################
9
+
10
+ require 'falkorlib'
11
+ require 'falkorlib/tasks'
12
+ require 'falkorlib/puppet'
13
+
14
+ #.....................
15
+ namespace :bootstrap do
16
+ #.....................
17
+ namespace :puppet do
18
+
19
+ ########### bootstrap:puppet:module ###########
20
+ desc "Bootstrap a new Puppet module"
21
+ task :module, [:name] do |t, args|
22
+ info "#{t.comment}"
23
+ name = args.name == 'name' ? ask("Enter the module name") : args.name
24
+ error "You need to provide a module name" unless name != ''
25
+ error "The module name cannot contain spaces" if name =~ /\s+/
26
+ moduledir = File.join( FalkorLib.config[:puppet][:modulesdir], name)
27
+ dir = ask("Destination directory:", moduledir)
28
+ error "The module '#{name}' already exists" if File.directory?(dir)
29
+ FalkorLib::Puppet::Modules.init(dir, name)
30
+ end
31
+
32
+
33
+ end # namespace bootstrap:puppet
34
+ end # namespace bootstrap
35
+
@@ -32,7 +32,7 @@ begin
32
32
  # Glob pattern to match files.
33
33
  #t.pattern = "spec/**/test_*.rb"
34
34
  #t.pattern = "spec/**/*_spec.rb"
35
- #t.pattern = "spec/**/versioning_*spec.rb"
35
+ #t.pattern = "spec/**/puppet*spec.rb"
36
36
 
37
37
  # Whether or not to fail Rake when an error occurs (typically when
38
38
  # examples fail).
@@ -19,7 +19,7 @@ module FalkorLib #:nodoc:
19
19
  # MAJOR: Defines the major version
20
20
  # MINOR: Defines the minor version
21
21
  # PATCH: Defines the patch version
22
- MAJOR, MINOR, PATCH = 0, 2, 15
22
+ MAJOR, MINOR, PATCH = 0, 3, 0
23
23
 
24
24
  module_function
25
25
 
@@ -71,3 +71,4 @@ module FalkorLib #:nodoc:
71
71
  # Shorter version of the Gem's VERSION
72
72
  VERSION = Version.to_s
73
73
  end
74
+
@@ -1,11 +1,12 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Mar 2014-07-01 11:13 svarrette>
3
+ # Time-stamp: <Sam 2014-08-23 12:32 svarrette>
4
4
  ################################################################################
5
5
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
6
6
  #
7
7
  # FalkorLib Version management
8
8
  #
9
+ require 'json'
9
10
 
10
11
  module FalkorLib #:nodoc:
11
12
 
@@ -28,6 +29,9 @@ module FalkorLib #:nodoc:
28
29
  #:setmethod => 'FalkorLib::Version.set',
29
30
  #:pattern => '^(\s*)MAJOR\s*,\s*MINOR,\s*PATCH\s*=\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)'
30
31
  },
32
+ 'puppet_module' => {
33
+ :filename => 'metadata.json'
34
+ },
31
35
  'tag' => {
32
36
  :suffix => 'v'
33
37
  },
@@ -75,6 +79,10 @@ module FalkorLib #:nodoc:
75
79
  when 'gem'
76
80
  getmethod = source[:getmethod ]
77
81
  version = eval( getmethod ) unless (getmethod.nil? || getmethod.empty?)
82
+ when 'puppet_module'
83
+ jsonfile = File.join( rootdir, source[:filename] )
84
+ metadata = JSON.parse( IO.read( jsonfile ) )
85
+ version = metadata["version"]
78
86
  end
79
87
  version
80
88
  end
@@ -101,6 +109,13 @@ module FalkorLib #:nodoc:
101
109
  f.rewind
102
110
  f.write(text)
103
111
  end
112
+ when 'puppet_module'
113
+ info "=> writing version changes in #{source[:filename]}"
114
+ metadata = JSON.parse( IO.read( versionfile ) )
115
+ metadata["version"] = version
116
+ File.open(versionfile,"w") do |f|
117
+ f.write JSON.pretty_generate( metadata )
118
+ end
104
119
  #exit 1
105
120
  end
106
121
  Dir.chdir( rootdir ) do
@@ -2,7 +2,7 @@
2
2
  #########################################
3
3
  # git_spec.rb
4
4
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
- # Time-stamp: <Mer 2014-06-25 14:36 svarrette>
5
+ # Time-stamp: <Sam 2014-08-23 15:26 svarrette>
6
6
  #
7
7
  # @description Check the Git operations
8
8
  #
@@ -44,6 +44,11 @@ describe FalkorLib::Git do
44
44
  t.should be_true
45
45
  end
46
46
 
47
+ it "#remotes? -- should be false" do
48
+ t = FalkorLib::Git.remotes?(dir)
49
+ t.should be_false
50
+ end
51
+
47
52
  it "#rootdir #gitdir - checks git dir and working tree" do
48
53
  subdir = File.join(dir, 'some_dir')
49
54
  Dir.mkdir( subdir )
@@ -2,7 +2,7 @@
2
2
  #########################################
3
3
  # gitflow_spec.rb
4
4
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
- # Time-stamp: <Jeu 2014-07-03 23:58 svarrette>
5
+ # Time-stamp: <Mar 2014-08-26 11:15 svarrette>
6
6
  #
7
7
  # @description Check the Git Flow operations -- see https://github.com/nvie/gitflow
8
8
  #
@@ -30,9 +30,9 @@ describe FalkorLib::GitFlow do
30
30
  context "Test git-flow operations within temporary directory " do
31
31
 
32
32
  it "#init? - fails on non-git directory" do
33
- t = FalkorLib::Git.init?(dir)
33
+ t = FalkorLib::GitFlow.init?(dir)
34
34
  t.should be_false
35
- end
35
+ end
36
36
 
37
37
  it "#init - initialize a git-flow repository" do
38
38
  STDIN.should_receive(:gets).and_return('Yes')
@@ -42,6 +42,11 @@ describe FalkorLib::GitFlow do
42
42
  t.should be_true
43
43
  end
44
44
 
45
+ it "#init? - succeed on git-flow enabled directory" do
46
+ t = FalkorLib::GitFlow.init?(dir)
47
+ t.should be_true
48
+ end
49
+
45
50
  #['feature', 'hotfix', 'support'].each do |op|
46
51
  ['feature'].each do |op|
47
52
  name = 'toto'
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/ruby
2
+ #########################################
3
+ # puppet_modules_spec.rb
4
+ # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
+ # Time-stamp: <Mar 2014-08-26 15:04 svarrette>
6
+ #
7
+ # @description Check the Puppet Modules operations
8
+ #
9
+ # Copyright (c) 2014 Sebastien Varrette <Sebastien.Varrette@uni.lu>
10
+ # . http://varrette.gforge.uni.lu
11
+ ##############################################################################
12
+
13
+ require 'spec_helper'
14
+ require 'tmpdir'
15
+ require 'falkorlib/puppet'
16
+
17
+ describe FalkorLib::Puppet::Modules do
18
+ include FalkorLib::Common
19
+
20
+ dir = Dir.mktmpdir
21
+ #afile = File.join(dir, 'a_file')
22
+
23
+ after :all do
24
+ FileUtils.remove_entry_secure dir
25
+ end
26
+
27
+ #############################################################
28
+ context "Test Puppet Module creation within temporary directory " do
29
+
30
+ it "#init -- create a puppet module" do
31
+ Array.new(18).each { |e| STDIN.should_receive(:gets).and_return('') }
32
+ name = 'toto'
33
+ FalkorLib::Puppet::Modules.init(dir, name)
34
+ templatedir = File.join( FalkorLib.templates, 'puppet', 'modules')
35
+ s = true
36
+ Dir["#{templatedir}/**/*"].each do |e|
37
+ next if File.directory?(e)
38
+ relative_dir = Pathname.new( File.realpath( File.dirname(e) )).relative_path_from Pathname.new(templatedir)
39
+ file = e.gsub(/templatename/, "#{name}")
40
+ filename = File.basename(file)
41
+ filename = File.basename(file, '.erb') unless file =~ /templates\/toto-variables\.erb/
42
+ f = File.join(dir, relative_dir, filename)
43
+ #puts "checking #{f} - #{File.exists?( f )}"
44
+ s &= File.exists?( f )
45
+ end
46
+ s.should be_true
47
+ end
48
+
49
+
50
+ end
51
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: falkorlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.15
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastien Varrette
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-20 00:00:00.000000000 Z
11
+ date: 2014-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -100,6 +100,34 @@ dependencies:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '1.2'
103
+ - !ruby/object:Gem::Dependency
104
+ name: json
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.8'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.8'
117
+ - !ruby/object:Gem::Dependency
118
+ name: license-generator
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
103
131
  - !ruby/object:Gem::Dependency
104
132
  name: bundler
105
133
  requirement: !ruby/object:Gem::Requirement
@@ -249,12 +277,18 @@ files:
249
277
  - lib/falkorlib/git/flow.rb
250
278
  - lib/falkorlib/git_tasks.rb
251
279
  - lib/falkorlib/loader.rb
280
+ - lib/falkorlib/puppet.rb
281
+ - lib/falkorlib/puppet/base.rb
282
+ - lib/falkorlib/puppet/modules.rb
283
+ - lib/falkorlib/puppet_tasks.rb
252
284
  - lib/falkorlib/tasks.rb
253
285
  - lib/falkorlib/tasks/gem.rake
254
286
  - lib/falkorlib/tasks/gem.rb
255
287
  - lib/falkorlib/tasks/git.rake
256
288
  - lib/falkorlib/tasks/git.rb
257
289
  - lib/falkorlib/tasks/gitflow.rake
290
+ - lib/falkorlib/tasks/puppet.rb
291
+ - lib/falkorlib/tasks/puppet_modules.rake
258
292
  - lib/falkorlib/tasks/rspec.rake
259
293
  - lib/falkorlib/tasks/yard.rake
260
294
  - lib/falkorlib/version.rb
@@ -262,6 +296,7 @@ files:
262
296
  - spec/falkorlib/common_spec.rb
263
297
  - spec/falkorlib/git_spec.rb
264
298
  - spec/falkorlib/gitflow_spec.rb
299
+ - spec/falkorlib/puppet_modules_spec.rb
265
300
  - spec/falkorlib/versioning_gem_spec.rb
266
301
  - spec/falkorlib/versioning_spec.rb
267
302
  - spec/falkorlib_spec.rb
@@ -296,6 +331,7 @@ test_files:
296
331
  - spec/falkorlib/common_spec.rb
297
332
  - spec/falkorlib/git_spec.rb
298
333
  - spec/falkorlib/gitflow_spec.rb
334
+ - spec/falkorlib/puppet_modules_spec.rb
299
335
  - spec/falkorlib/versioning_gem_spec.rb
300
336
  - spec/falkorlib/versioning_spec.rb
301
337
  - spec/falkorlib_spec.rb