power_stencil 0.4.9 → 0.4.14

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: 43b7b6b0f091227dae7f7e4c196c74b826af12d7
4
- data.tar.gz: 8344c66df5508610ac8c7e9ab7905f21be6353b8
3
+ metadata.gz: c21fb1598bf2a0f87a28225e7293c6316a535866
4
+ data.tar.gz: 382b7da148e144199820f554044b6dbd6bc1748a
5
5
  SHA512:
6
- metadata.gz: 6fbf1e84e0fcbfe17b371908763c77b35045fe6217b3f233f113ca7caa3bde4a1d974b32a4e3296fbc5462ba492b381cb839146cae3dd357fac03babefbbc6bc
7
- data.tar.gz: c00401502df22c18b2f254abc321b9b710b6c418e3bdca442b25889a8544fb36ad39bdef9e571388e77372455e2038da7b9129af60c2116779c5245bbfd23251
6
+ metadata.gz: 04a4b1171e4a606261f28a1b1187009385f1507b5d21fcb91a9b561bdde33afb7516875921b161ee35662ccc4195f7e642acabc4c566a2db3d6d43f765a25cce
7
+ data.tar.gz: 346b28711b2da3ef615fc8da3f46b26dfe078924cb8012c35d8e789d517d2d9e1a77cbb6feb399a380f8d14bcc877c5d724470c7cc8b0594ea2612a257e85ca7
@@ -71,6 +71,8 @@
71
71
 
72
72
  # Files matching particular patterns can be changed on the fly
73
73
  :file_renaming_patterns:
74
+ # Specific .gitignore file for Windows
75
+ ^(.+)\.zzzgitignore\.erb$: '\1.gitignore'
74
76
  # Erb files
75
77
  ^(.+)\.erb$: '\1'
76
78
 
@@ -0,0 +1,12 @@
1
+ PowerStencil plugins
2
+ ====================
3
+
4
+
5
+ In this directory, you can define project specific local plugins.
6
+ You should create them using the `PowerStencil` command-line.
7
+
8
+ $ power_stencil new-plugin myplugin
9
+
10
+ __It is strongly advised to keep this directory under source control__
11
+
12
+ This should be the PowerStencil default behaviour.
@@ -1,12 +1,10 @@
1
- PowerStencil project templates
2
- ==============================
1
+ PowerStencil project templates templates
2
+ ========================================
3
3
 
4
4
 
5
- In this directory, you can define project specific templates for entities
6
- defined locally in this project.
5
+ In this directory, you can define project specific templates for entity types defined locally in this project.
7
6
 
8
- Templates can be a whole tree structure in a directory named from the entity
9
- type of entities you defined in `entity_definitions` folder that are `buildable`.
7
+ Templates can be a whole tree structure in a directory named from the entity type of entities you defined in `entity_definitions` folder that are `buildable`.
10
8
 
11
9
  __It is strongly advised to keep this directory under source control__
12
10
 
@@ -59,7 +59,7 @@ module PowerStencil
59
59
  unless files_not_to_rename.ignore_file? src_file
60
60
  config[:file_renaming_patterns].each do |regexp_str, replacement|
61
61
  regexp = Regexp.new regexp_str
62
- next if (dest_file =~ regexp).nil?
62
+ next if (src_file =~ regexp).nil?
63
63
  dest_file = dest_file.gsub regexp, replacement
64
64
  break
65
65
  end
@@ -12,7 +12,7 @@ module PowerStencil
12
12
  # Dir.glob_with_ignore_file ignore_file, base_dir, *glob_args, &block
13
13
  file_pattern = "#{source}/**/*"
14
14
  res = {}
15
- Dir.glob_with_ignore_file ignore_files_pattern, source, file_pattern, File::FNM_DOTMATCH do |original_file|
15
+ Dir.glob_with_ignore_file(ignore_files_pattern, source, file_pattern, File::FNM_DOTMATCH).sort.each do |original_file|
16
16
  logger.debug "Processing '#{original_file}'"
17
17
  res[original_file] = destination_file(original_file, source, destination)
18
18
  if block_given?
@@ -25,14 +25,21 @@ module PowerStencil
25
25
  def securely_edit_entity(entity, &modifications_validation_block)
26
26
  initial_uri = entity.source_uri
27
27
  modified_entity = nil
28
- Tempfile.create(["#{entity.type.to_s}_#{entity.name.to_s}", '.yaml']) do |tmpfile|
28
+ tmpfile = Tempfile.create(["#{entity.type.to_s}_#{entity.name.to_s}", '.yaml'])
29
+ tmpfile_path = tmpfile.path
30
+ begin
29
31
  tmpfile.puts entity.to_yaml
30
32
  tmpfile.flush
31
- securely_edit_file(tmpfile, &modifications_validation_block)
32
- modified_entity = UniverseCompiler::Entity::Persistence.load tmpfile
33
- modified_entity.source_uri = initial_uri
33
+ ensure
34
+ tmpfile.close
34
35
  end
36
+ securely_edit_file(tmpfile_path, &modifications_validation_block)
37
+ modified_entity = UniverseCompiler::Entity::Persistence.load tmpfile_path
38
+ modified_entity.source_uri = initial_uri
35
39
  return modified_entity
40
+ ensure
41
+ tmpfile.close
42
+ File.unlink tmpfile
36
43
  end
37
44
 
38
45
  def securely_edit_file(file, &modifications_validation_block)
@@ -41,7 +48,9 @@ module PowerStencil
41
48
  end
42
49
  ext = File.extname file
43
50
  base = File.basename file, ext
44
- tmp_file_path = Tempfile.new([base, ext]).path
51
+ tmp_file = Tempfile.create([base, ext])
52
+ tmp_file_path = tmp_file.path
53
+ tmp_file.close
45
54
  retry_count = 1
46
55
  begin
47
56
  FileUtils.copy file, tmp_file_path if retry_count == 1
@@ -1,3 +1,3 @@
1
1
  module PowerStencil
2
- VERSION = '0.4.9'.freeze
2
+ VERSION = '0.4.14'.freeze
3
3
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = %q{PowerStencil is the Swiss-army knife templating workflow for developers and ops.}
13
13
  spec.description = %q{PowerStencil is the Swiss-army knife templating workflow for developers and ops.}
14
- spec.homepage = 'https://gitlab.com/tools4devops/power_stencil'
14
+ spec.homepage = 'https://powerstencil.brizone.org/'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -30,10 +30,13 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'universe_compiler', '~> 0.4.3'
31
31
  spec.add_dependency 'pry'
32
32
 
33
+ source_code_uri = 'https://gitlab.com/tools4devops/power_stencil'
34
+
33
35
  spec.metadata = {
34
- "Bug Tracker" => "#{spec.homepage}/issues",
35
- "Documentation" => "#{spec.homepage}/blob/master/README.md",
36
- "Project Website" => "https://powerstencil.brizone.org"
36
+ 'bug_tracker_uri' => "#{source_code_uri}/issues",
37
+ 'documentation_uri' => "#{source_code_uri}/blob/master/README.md",
38
+ 'source_code_uri' => source_code_uri,
39
+ 'homepage_uri' => spec.homepage
37
40
  }
38
41
 
39
42
  spec.post_install_message = %Q{
@@ -43,7 +46,8 @@ If your shell is not completing the command:
43
46
  If you use rbenv: `rbenv rehash`
44
47
  If you use zsh : `rehash`
45
48
 
46
- Full documentation here : #{spec.homepage}/blob/master/README.md
47
- Feel free to report issues: #{spec.homepage}/issues
49
+ Official Website : #{spec.homepage}
50
+ Full documentation here : #{spec.metadata['source_code_uri']}/blob/master/README.md
51
+ Feel free to report issues: #{spec.metadata['source_code_uri']}/issues
48
52
  }
49
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: power_stencil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.4.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent Briais
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-28 00:00:00.000000000 Z
11
+ date: 2019-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -171,18 +171,19 @@ files:
171
171
  - etc/templates/plugin_definition/spec/spec_helper.rb
172
172
  - etc/templates/plugin_definition/spec/{entity}_spec.rb
173
173
  - etc/templates/project/.copy_ignore
174
- - etc/templates/project/.gitignore.erb
175
174
  - etc/templates/project/.ps_project/entities/.gitkeep
176
175
  - etc/templates/project/.ps_project/entities/README.md
177
176
  - etc/templates/project/.ps_project/entity_definitions/.gitkeep
178
177
  - etc/templates/project/.ps_project/entity_definitions/README.md
179
178
  - etc/templates/project/.ps_project/personal-config.yaml
180
179
  - etc/templates/project/.ps_project/plugins/.gitkeep
180
+ - etc/templates/project/.ps_project/plugins/README.md
181
181
  - etc/templates/project/.ps_project/templates-templates/.gitkeep
182
182
  - etc/templates/project/.ps_project/templates-templates/README.md
183
183
  - etc/templates/project/.ps_project/user_entities/.gitkeep
184
184
  - etc/templates/project/.ps_project/user_entities/README.md
185
185
  - etc/templates/project/.ps_project/versioned-config.yaml
186
+ - etc/templates/project/.zzzgitignore.erb
186
187
  - etc/templates/simple_exec/main.sh
187
188
  - exe/power_stencil
188
189
  - lib/power_stencil.rb
@@ -250,18 +251,20 @@ files:
250
251
  - lib/power_stencil/utils/semantic_version.rb
251
252
  - lib/power_stencil/version.rb
252
253
  - power_stencil.gemspec
253
- homepage: https://gitlab.com/tools4devops/power_stencil
254
+ homepage: https://powerstencil.brizone.org/
254
255
  licenses:
255
256
  - MIT
256
257
  metadata:
257
- Bug Tracker: https://gitlab.com/tools4devops/power_stencil/issues
258
- Documentation: https://gitlab.com/tools4devops/power_stencil/blob/master/README.md
259
- Project Website: https://powerstencil.brizone.org
260
- post_install_message: "\nThank you for installing PowerStencil 0.4.9 !\nFrom the command
261
- line you can run `power_stencil --help`\nIf your shell is not completing the command:\n
262
- \ If you use rbenv: `rbenv rehash`\n If you use zsh : `rehash`\n\nFull documentation
263
- here : https://gitlab.com/tools4devops/power_stencil/blob/master/README.md\nFeel
264
- free to report issues: https://gitlab.com/tools4devops/power_stencil/issues\n "
258
+ bug_tracker_uri: https://gitlab.com/tools4devops/power_stencil/issues
259
+ documentation_uri: https://gitlab.com/tools4devops/power_stencil/blob/master/README.md
260
+ source_code_uri: https://gitlab.com/tools4devops/power_stencil
261
+ homepage_uri: https://powerstencil.brizone.org/
262
+ post_install_message: "\nThank you for installing PowerStencil 0.4.14 !\nFrom the
263
+ command line you can run `power_stencil --help`\nIf your shell is not completing
264
+ the command:\n If you use rbenv: `rbenv rehash`\n If you use zsh : `rehash`\n\nOfficial
265
+ Website : https://powerstencil.brizone.org/\nFull documentation here :
266
+ https://gitlab.com/tools4devops/power_stencil/blob/master/README.md\nFeel free to
267
+ report issues: https://gitlab.com/tools4devops/power_stencil/issues\n "
265
268
  rdoc_options: []
266
269
  require_paths:
267
270
  - lib