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 +4 -4
- data/etc/power_stencil.yaml +2 -0
- data/etc/templates/project/.ps_project/plugins/README.md +12 -0
- data/etc/templates/project/.ps_project/templates-templates/README.md +4 -6
- data/etc/templates/project/{.gitignore.erb → .zzzgitignore.erb} +0 -0
- data/lib/power_stencil/engine/directory_processor.rb +1 -1
- data/lib/power_stencil/utils/directory_processor.rb +1 -1
- data/lib/power_stencil/utils/file_edit.rb +14 -5
- data/lib/power_stencil/version.rb +1 -1
- data/power_stencil.gemspec +10 -6
- metadata +15 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c21fb1598bf2a0f87a28225e7293c6316a535866
|
4
|
+
data.tar.gz: 382b7da148e144199820f554044b6dbd6bc1748a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04a4b1171e4a606261f28a1b1187009385f1507b5d21fcb91a9b561bdde33afb7516875921b161ee35662ccc4195f7e642acabc4c566a2db3d6d43f765a25cce
|
7
|
+
data.tar.gz: 346b28711b2da3ef615fc8da3f46b26dfe078924cb8012c35d8e789d517d2d9e1a77cbb6feb399a380f8d14bcc877c5d724470c7cc8b0594ea2612a257e85ca7
|
data/etc/power_stencil.yaml
CHANGED
@@ -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
|
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
|
|
File without changes
|
@@ -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 (
|
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
|
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'])
|
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
|
-
|
32
|
-
|
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
|
-
|
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
|
data/power_stencil.gemspec
CHANGED
@@ -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://
|
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
|
-
|
35
|
-
|
36
|
-
|
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
|
-
|
47
|
-
|
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.
|
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-
|
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://
|
254
|
+
homepage: https://powerstencil.brizone.org/
|
254
255
|
licenses:
|
255
256
|
- MIT
|
256
257
|
metadata:
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
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
|