power_stencil 0.4.9 → 0.4.14
Sign up to get free protection for your applications and to get access to all the features.
- 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
|