power_stencil 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +194 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/bin/update_plugin_template +79 -0
- data/doc/builds.md +267 -0
- data/doc/entities.md +964 -0
- data/doc/example_use_cases.md +59 -0
- data/doc/images/power-stencil-architecture.svg +151 -0
- data/doc/images/power-stencil-entity-build.svg +481 -0
- data/doc/images/power-stencil-entity-creation.svg +375 -0
- data/doc/images/power-stencil-project-overview.svg +2534 -0
- data/doc/images/power-stencil-simple-flow.svg +265 -0
- data/doc/plugins.md +169 -0
- data/doc/templates.md +332 -0
- data/etc/base_commands_definition.yml +259 -0
- data/etc/meta_templates/plugin_seed/etc/command_line.yaml +12 -0
- data/etc/meta_templates/plugin_seed/etc/plugin_config.yaml +4 -0
- data/etc/meta_templates/plugin_seed/etc/templates/.git_keep +0 -0
- data/etc/meta_templates/plugin_seed/lib/{entity}.rb.erb +34 -0
- data/etc/meta_templates/plugin_seed/lib/{entity}/entity_definitions/{entity}_entity.rb.erb +11 -0
- data/etc/meta_templates/plugin_seed/lib/{entity}/plugin_helper.rb.erb +17 -0
- data/etc/meta_templates/plugin_seed/lib/{entity}/version.rb.erb +3 -0
- data/etc/meta_templates/plugin_seed/lib/{entity}/{entity}_processor.rb.erb +19 -0
- data/etc/meta_templates/plugin_seed/psplugin_{entity}.gemspec +36 -0
- data/etc/power_stencil.yaml +92 -0
- data/etc/templates/plugin_definition/.gitignore +11 -0
- data/etc/templates/plugin_definition/.rspec +3 -0
- data/etc/templates/plugin_definition/.travis.yml +5 -0
- data/etc/templates/plugin_definition/CODE_OF_CONDUCT.md +74 -0
- data/etc/templates/plugin_definition/Gemfile +6 -0
- data/etc/templates/plugin_definition/LICENSE.txt +21 -0
- data/etc/templates/plugin_definition/README.md +43 -0
- data/etc/templates/plugin_definition/Rakefile +6 -0
- data/etc/templates/plugin_definition/bin/console +14 -0
- data/etc/templates/plugin_definition/bin/setup +8 -0
- data/etc/templates/plugin_definition/etc/command_line.yaml +12 -0
- data/etc/templates/plugin_definition/etc/plugin_config.yaml +4 -0
- data/etc/templates/plugin_definition/etc/templates/.git_keep +1 -0
- data/etc/templates/plugin_definition/lib/{entity}.rb.erb +34 -0
- data/etc/templates/plugin_definition/lib/{entity}/entity_definitions/{entity}_entity.rb.erb +11 -0
- data/etc/templates/plugin_definition/lib/{entity}/plugin_helper.rb.erb +17 -0
- data/etc/templates/plugin_definition/lib/{entity}/version.rb.erb +3 -0
- data/etc/templates/plugin_definition/lib/{entity}/{entity}_processor.rb.erb +19 -0
- data/etc/templates/plugin_definition/psplugin_{entity}.gemspec +36 -0
- data/etc/templates/plugin_definition/spec/spec_helper.rb +14 -0
- data/etc/templates/plugin_definition/spec/{entity}_spec.rb +9 -0
- data/etc/templates/project/.copy_ignore +2 -0
- data/etc/templates/project/.gitignore.erb +6 -0
- data/etc/templates/project/.ps_project/entities/.gitkeep +0 -0
- data/etc/templates/project/.ps_project/entities/README.md +11 -0
- data/etc/templates/project/.ps_project/entity_definitions/.gitkeep +0 -0
- data/etc/templates/project/.ps_project/entity_definitions/README.md +15 -0
- data/etc/templates/project/.ps_project/personal-config.yaml +8 -0
- data/etc/templates/project/.ps_project/plugins/.gitkeep +0 -0
- data/etc/templates/project/.ps_project/templates-templates/.gitkeep +0 -0
- data/etc/templates/project/.ps_project/templates-templates/README.md +13 -0
- data/etc/templates/project/.ps_project/user_entities/.gitkeep +0 -0
- data/etc/templates/project/.ps_project/user_entities/README.md +12 -0
- data/etc/templates/project/.ps_project/versioned-config.yaml +6 -0
- data/etc/templates/simple_exec/main.sh +4 -0
- data/exe/power_stencil +28 -0
- data/lib/power_stencil.rb +53 -0
- data/lib/power_stencil/command_processors/build.rb +43 -0
- data/lib/power_stencil/command_processors/check.rb +35 -0
- data/lib/power_stencil/command_processors/create.rb +70 -0
- data/lib/power_stencil/command_processors/delete.rb +38 -0
- data/lib/power_stencil/command_processors/edit.rb +35 -0
- data/lib/power_stencil/command_processors/entity_helper.rb +105 -0
- data/lib/power_stencil/command_processors/get.rb +22 -0
- data/lib/power_stencil/command_processors/info.rb +41 -0
- data/lib/power_stencil/command_processors/init.rb +47 -0
- data/lib/power_stencil/command_processors/new_plugin.rb +31 -0
- data/lib/power_stencil/command_processors/root.rb +27 -0
- data/lib/power_stencil/command_processors/shell.rb +37 -0
- data/lib/power_stencil/command_processors/trace_helper.rb +20 -0
- data/lib/power_stencil/dsl/base.rb +24 -0
- data/lib/power_stencil/dsl/entities.rb +46 -0
- data/lib/power_stencil/dsl/plugin_generation.rb +17 -0
- data/lib/power_stencil/engine/base.rb +50 -0
- data/lib/power_stencil/engine/build_handling.rb +77 -0
- data/lib/power_stencil/engine/directory_processor.rb +111 -0
- data/lib/power_stencil/engine/entities_definitions.rb +42 -0
- data/lib/power_stencil/engine/entities_handling.rb +76 -0
- data/lib/power_stencil/engine/entity_engine.rb +20 -0
- data/lib/power_stencil/engine/init_engine.rb +18 -0
- data/lib/power_stencil/engine/project_engine.rb +75 -0
- data/lib/power_stencil/engine/renderers/erb.rb +21 -0
- data/lib/power_stencil/error.rb +20 -0
- data/lib/power_stencil/initializer.rb +87 -0
- data/lib/power_stencil/plugins/base.rb +54 -0
- data/lib/power_stencil/plugins/capabilities.rb +30 -0
- data/lib/power_stencil/plugins/command_line.rb +27 -0
- data/lib/power_stencil/plugins/config.rb +32 -0
- data/lib/power_stencil/plugins/dependencies.rb +32 -0
- data/lib/power_stencil/plugins/gem.rb +57 -0
- data/lib/power_stencil/plugins/require.rb +77 -0
- data/lib/power_stencil/plugins/templates.rb +21 -0
- data/lib/power_stencil/project/base.rb +79 -0
- data/lib/power_stencil/project/config.rb +54 -0
- data/lib/power_stencil/project/create.rb +30 -0
- data/lib/power_stencil/project/info.rb +72 -0
- data/lib/power_stencil/project/paths.rb +119 -0
- data/lib/power_stencil/project/plugins.rb +89 -0
- data/lib/power_stencil/project/proxy.rb +13 -0
- data/lib/power_stencil/project/templates.rb +56 -0
- data/lib/power_stencil/project/versioning.rb +29 -0
- data/lib/power_stencil/system_entity_definitions/all.rb +14 -0
- data/lib/power_stencil/system_entity_definitions/buildable.rb +23 -0
- data/lib/power_stencil/system_entity_definitions/entity_override.rb +8 -0
- data/lib/power_stencil/system_entity_definitions/entity_project_common.rb +33 -0
- data/lib/power_stencil/system_entity_definitions/has_associated_files.rb +13 -0
- data/lib/power_stencil/system_entity_definitions/non_persistent.rb +14 -0
- data/lib/power_stencil/system_entity_definitions/plugin.rb +17 -0
- data/lib/power_stencil/system_entity_definitions/process_descriptor.rb +15 -0
- data/lib/power_stencil/system_entity_definitions/project_config.rb +24 -0
- data/lib/power_stencil/system_entity_definitions/project_entity.rb +16 -0
- data/lib/power_stencil/system_entity_definitions/simple_exec.rb +47 -0
- data/lib/power_stencil/utils/directory_processor.rb +54 -0
- data/lib/power_stencil/utils/file_edit.rb +87 -0
- data/lib/power_stencil/utils/file_helper.rb +56 -0
- data/lib/power_stencil/utils/gem_utils.rb +13 -0
- data/lib/power_stencil/utils/secure_require.rb +26 -0
- data/lib/power_stencil/utils/semantic_version.rb +128 -0
- data/lib/power_stencil/version.rb +3 -0
- data/power_stencil.gemspec +32 -0
- metadata +287 -0
@@ -0,0 +1,259 @@
|
|
1
|
+
:options:
|
2
|
+
verbose:
|
3
|
+
:type: bool
|
4
|
+
:summary: Displays extra runtime information.
|
5
|
+
:global: true
|
6
|
+
:short_aliases:
|
7
|
+
- v
|
8
|
+
help:
|
9
|
+
:type: bool
|
10
|
+
:summary: Displays this help.
|
11
|
+
:global: true
|
12
|
+
:short_aliases:
|
13
|
+
- h
|
14
|
+
version:
|
15
|
+
:type: bool
|
16
|
+
:summary: Displays program version.
|
17
|
+
:short_aliases:
|
18
|
+
- V
|
19
|
+
:long_aliases:
|
20
|
+
- program-version
|
21
|
+
simulate:
|
22
|
+
:type: bool
|
23
|
+
:global: true
|
24
|
+
:summary: Will not perform actual actions
|
25
|
+
debug:
|
26
|
+
:type: bool
|
27
|
+
:summary: Debug mode
|
28
|
+
:global: true
|
29
|
+
debug-on-stderr:
|
30
|
+
:type: bool
|
31
|
+
:global: true
|
32
|
+
:summary: Sends debugging to SDTERR
|
33
|
+
:long_aliases:
|
34
|
+
- debug-on-err
|
35
|
+
:dependencies:
|
36
|
+
- debug
|
37
|
+
:incompatibilities:
|
38
|
+
- log-file
|
39
|
+
log-level:
|
40
|
+
:global: true
|
41
|
+
:dependencies:
|
42
|
+
- debug
|
43
|
+
:type: integer
|
44
|
+
:summary: Defines the level of logging (0 to 5)
|
45
|
+
log-file:
|
46
|
+
:global: true
|
47
|
+
:dependencies:
|
48
|
+
- debug
|
49
|
+
:incompatibilities:
|
50
|
+
- debug-on-stderr
|
51
|
+
:type: string
|
52
|
+
:summary: Specifies a file to log into
|
53
|
+
truncate-log-file:
|
54
|
+
:global: true
|
55
|
+
:dependencies:
|
56
|
+
- log-file
|
57
|
+
:type: bool
|
58
|
+
:summary: Truncates the log file (appends by default)
|
59
|
+
project-path:
|
60
|
+
:global: true
|
61
|
+
:type: string
|
62
|
+
:summary: Specifies a startup path to use instead of '.'
|
63
|
+
auto:
|
64
|
+
:global: true
|
65
|
+
:type: bool
|
66
|
+
:summary: Bypasses command-line confirmations to the user
|
67
|
+
|
68
|
+
:banner: |
|
69
|
+
This is power_stencil. A powerful templating engine.
|
70
|
+
|
71
|
+
:subcommands:
|
72
|
+
init:
|
73
|
+
:banner: |
|
74
|
+
Initializes a PowerStencil repository.
|
75
|
+
|
76
|
+
Usage:
|
77
|
+
init [project_path] [options]
|
78
|
+
|
79
|
+
Default is initializing the PowerStencil repository in current directory. If
|
80
|
+
specified, will initialize a repository in project_path (global option
|
81
|
+
project_path can be used too).
|
82
|
+
:options:
|
83
|
+
force:
|
84
|
+
:type: bool
|
85
|
+
:summary: Forces creation in an already existing directory.
|
86
|
+
:short_aliases:
|
87
|
+
- f
|
88
|
+
info:
|
89
|
+
:banner: |
|
90
|
+
Generic information about the repository.
|
91
|
+
|
92
|
+
Usage:
|
93
|
+
info [options]
|
94
|
+
|
95
|
+
Displays information about the repository.
|
96
|
+
new-plugin:
|
97
|
+
:banner: |
|
98
|
+
Generates the skeleton for a plugin.
|
99
|
+
|
100
|
+
Usage:
|
101
|
+
new-plugin [options]
|
102
|
+
|
103
|
+
Generates a fully working although useless plugin skeleton.
|
104
|
+
get:
|
105
|
+
:banner: |
|
106
|
+
Query entities from repository.
|
107
|
+
|
108
|
+
Usage:
|
109
|
+
|
110
|
+
get [entity_type[/ ]entity_name] [options]
|
111
|
+
|
112
|
+
Retrieves entities from the repostory. You can have multiple
|
113
|
+
criteria passed on the command line. either of the form
|
114
|
+
"type/name" or two consecutive parameters "type name". If in
|
115
|
+
"regexp" mode then each criterion is considered as a regular
|
116
|
+
expression (be careful, not a file pattern alike)
|
117
|
+
:options:
|
118
|
+
regexp: ®EXPOPT
|
119
|
+
:type: bool
|
120
|
+
:summary: Parameters are considered as regular expressions.
|
121
|
+
:short_aliases:
|
122
|
+
- r
|
123
|
+
:long_aliases:
|
124
|
+
- regular-expression
|
125
|
+
names-only:
|
126
|
+
:type: bool
|
127
|
+
:summary: Only returns the name of the entities found.
|
128
|
+
compiled: &COMPILEDOPT
|
129
|
+
:type: bool
|
130
|
+
:summary: Entities as used by susbstitution engine.
|
131
|
+
scenario: &SCENARIOOPT
|
132
|
+
:type: string
|
133
|
+
:summary: Applies overrides defined for this scenario.
|
134
|
+
:dependencies:
|
135
|
+
- compiled
|
136
|
+
raw:
|
137
|
+
:type: bool
|
138
|
+
:summary: Displays entities as they are stored
|
139
|
+
graph:
|
140
|
+
:type: bool
|
141
|
+
:summary: Displays the query result as a graph.
|
142
|
+
:short_aliases:
|
143
|
+
- g
|
144
|
+
shell:
|
145
|
+
:banner: |
|
146
|
+
Opens a shell to interact with entities.
|
147
|
+
|
148
|
+
Usage:
|
149
|
+
shell [options]
|
150
|
+
|
151
|
+
Opens a Ruby "pry" shell with all entities loaded. You can modify
|
152
|
+
create, delete any entity from there.
|
153
|
+
:options:
|
154
|
+
compiled:
|
155
|
+
<<: *COMPILEDOPT
|
156
|
+
scenario:
|
157
|
+
<<: *SCENARIOOPT
|
158
|
+
check:
|
159
|
+
:banner: |
|
160
|
+
Check repository entities consistency.
|
161
|
+
|
162
|
+
Usage:
|
163
|
+
|
164
|
+
check [entity_type[[/ ]entity_name]] [options]
|
165
|
+
|
166
|
+
Check entities consistency. By default will check all entities.
|
167
|
+
:options:
|
168
|
+
regexp:
|
169
|
+
<<: *REGEXPOPT
|
170
|
+
create:
|
171
|
+
:banner: |
|
172
|
+
Creates entities in the repository.
|
173
|
+
|
174
|
+
Usage:
|
175
|
+
|
176
|
+
create entity_type[/ ]entity_name [options]
|
177
|
+
|
178
|
+
Creates repository entities. Both type and name have to be provided
|
179
|
+
:options:
|
180
|
+
property:
|
181
|
+
:type: array
|
182
|
+
:summary: Specifiies a first-level property for the entity
|
183
|
+
:short_aliases:
|
184
|
+
- p
|
185
|
+
edit:
|
186
|
+
:type: bool
|
187
|
+
:summary: Edits the newly created entity.
|
188
|
+
:short_aliases:
|
189
|
+
- e
|
190
|
+
:long_aliases:
|
191
|
+
- edit-after-create
|
192
|
+
editor:
|
193
|
+
:type: string
|
194
|
+
:summary: Specifies an editor to use.
|
195
|
+
:dependencies:
|
196
|
+
- edit
|
197
|
+
user:
|
198
|
+
:type: bool
|
199
|
+
:summary: Stores the entities as local user entities, ie non-versioned
|
200
|
+
:long_aliases:
|
201
|
+
- user-storage
|
202
|
+
- non-versioned
|
203
|
+
:short_aliases:
|
204
|
+
- u
|
205
|
+
edit:
|
206
|
+
:banner: |
|
207
|
+
Edit entities from repository.
|
208
|
+
|
209
|
+
Usage:
|
210
|
+
|
211
|
+
edit [object_type[[/ ]object_name]] [options]
|
212
|
+
|
213
|
+
Edits repository entities. Parameters are used the same way as in 'get'.
|
214
|
+
:options:
|
215
|
+
regexp: *REGEXPOPT
|
216
|
+
editor:
|
217
|
+
:type: string
|
218
|
+
:summary: Specifies an editor to use.
|
219
|
+
:short_aliases:
|
220
|
+
- e
|
221
|
+
delete:
|
222
|
+
:banner: |
|
223
|
+
Delete entities from repository.
|
224
|
+
|
225
|
+
Usage:
|
226
|
+
|
227
|
+
delete [object_type[[/ ]object_name]] [options]
|
228
|
+
|
229
|
+
Deletes repository entities. Parameters are used the same way as in 'get'.
|
230
|
+
:options:
|
231
|
+
regexp: *REGEXPOPT
|
232
|
+
delete-files:
|
233
|
+
:type: bool
|
234
|
+
:summary: Will also remove files related to the entity.
|
235
|
+
build:
|
236
|
+
:banner: |
|
237
|
+
Builds entities.
|
238
|
+
|
239
|
+
Usage:
|
240
|
+
|
241
|
+
build [entity_type[[/ ]entity_name]]+ [options]
|
242
|
+
|
243
|
+
Builds repository entities. Parameters are used the same way as in 'get'.
|
244
|
+
:options:
|
245
|
+
regexp: *REGEXPOPT
|
246
|
+
supported-builds:
|
247
|
+
:type: bool
|
248
|
+
:summary: Displays the list of supported builds
|
249
|
+
:short_aliases:
|
250
|
+
- s
|
251
|
+
:long_aliases:
|
252
|
+
- list
|
253
|
+
fail-on-error:
|
254
|
+
:type: bool
|
255
|
+
:summary: Fails at the first failure
|
256
|
+
parallelized:
|
257
|
+
:type: bool
|
258
|
+
:summary: Parallelizes builds if possible
|
259
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This is an example
|
2
|
+
# With this file, you can contribute to the power_stencil
|
3
|
+
# command-line global semantic
|
4
|
+
:subcommands:
|
5
|
+
<%= main_entry_point %>:
|
6
|
+
:banner: |
|
7
|
+
Does nothing useful
|
8
|
+
Added by plugin <%= plugin_name %>
|
9
|
+
:options:
|
10
|
+
hello:
|
11
|
+
:type: bool
|
12
|
+
:summary: Just a hello flag.
|
File without changes
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require '<%= plugin_name %>/version'
|
2
|
+
require '<%= plugin_name %>/plugin_helper'
|
3
|
+
require '<%= plugin_name %>/<%= plugin_name %>_processor'
|
4
|
+
|
5
|
+
module <%= plugin_module_name %>
|
6
|
+
|
7
|
+
extend PowerStencil::Utils::SecureRequire
|
8
|
+
extend <%= plugin_module_name %>::PluginHelper
|
9
|
+
|
10
|
+
REQUIRED_PLUGINS = []
|
11
|
+
|
12
|
+
def self.setup_processors
|
13
|
+
clm = PowerStencil.command_line_manager
|
14
|
+
clm.register_processor clm.command_by_alias('<%= main_entry_point %>'), <%= plugin_module_name %>::Processor.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.setup_entity_definitions
|
18
|
+
PowerStencil.logger.info 'Setting up <%= main_entry_point %> plugin entities'
|
19
|
+
securely_require '<%= plugin_name %>/entity_definitions/<%= plugin_name %>_entity', fail_on_error: true
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.setup_plugin_templates
|
23
|
+
Dir.entries(plugin_templates_path).reject { |e| %w(. ..).include? e }.each do |entry|
|
24
|
+
template_path = File.join(plugin_templates_path, entry)
|
25
|
+
if Dir.exist? template_path
|
26
|
+
PowerStencil.project.register_template_path_for_type entry.to_sym, template_path
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
# All plugins have to be in the PowerStencil::Plugin namespace !
|
34
|
+
PowerStencil::Plugin::<%= plugin_module_name %> = <%= plugin_module_name %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module <%= plugin_module_name %>
|
2
|
+
module PluginHelper
|
3
|
+
|
4
|
+
def plugin_templates_path
|
5
|
+
File.join plugin_root_path, 'etc', 'templates'
|
6
|
+
end
|
7
|
+
|
8
|
+
def command_line_definition_file_path
|
9
|
+
File.join plugin_root_path, 'etc', 'command_line.yaml'
|
10
|
+
end
|
11
|
+
|
12
|
+
def plugin_root_path
|
13
|
+
File.expand_path File.join('..', '..', '..'), __FILE__
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module <%= plugin_module_name %>
|
2
|
+
|
3
|
+
class Processor
|
4
|
+
|
5
|
+
include Climatic::Script::UnimplementedProcessor
|
6
|
+
include Climatic::Proxy
|
7
|
+
include PowerStencil::Project::Proxy
|
8
|
+
|
9
|
+
|
10
|
+
def execute
|
11
|
+
puts '<%= main_entry_point.upcase %> PLUGIN WAZ HERE'
|
12
|
+
puts_and_logs config[].to_yaml
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require '<%= plugin_name %>/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'psplugin_<%= plugin_name %>'
|
8
|
+
spec.version = <%= plugin_module_name %>::VERSION
|
9
|
+
spec.authors = ['Your name']
|
10
|
+
spec.email = ['you@somewhere']
|
11
|
+
|
12
|
+
spec.summary = %q{TODO: Write a short summary, because RubyGems requires one.}
|
13
|
+
spec.description = %q{TODO: Write a longer description or delete this line.}
|
14
|
+
spec.homepage = "TODO: Put your gem's website or public repo URL here."
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
if spec.respond_to?(:metadata)
|
20
|
+
spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
+
else
|
22
|
+
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
23
|
+
end
|
24
|
+
|
25
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
26
|
+
f.match(%r{^(test|spec|features)/})
|
27
|
+
end
|
28
|
+
spec.bindir = 'exe'
|
29
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ['lib']
|
31
|
+
|
32
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
33
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
35
|
+
spec.add_development_dependency 'power_stencil', "~> #{<%= plugin_module_name %>::VERSION}"
|
36
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
---
|
2
|
+
# This file defines `power_stencil` executable defaults.
|
3
|
+
# It can be overridden via various mechanisms (mainly coming from
|
4
|
+
# the `climatic` gem), so system-wide config file, user config file,
|
5
|
+
# executable config file, project config file or for some of the
|
6
|
+
# properties directly from command line.
|
7
|
+
|
8
|
+
|
9
|
+
# PROJECT PATHS
|
10
|
+
|
11
|
+
# Default Power Stencil project configuration directory
|
12
|
+
:default_config_directory_name: .ps_project
|
13
|
+
# Ignore files for files/directory to completely skip in the process
|
14
|
+
:ignore_filename_for_files_to_skip: .copy_ignore
|
15
|
+
# Ignore files for files/directory to simply copy and apply no substitution
|
16
|
+
:ignore_filename_for_files_to_copy: .subst_ignore
|
17
|
+
# Ignore files for files/directory to simply copy and apply no renaming (see
|
18
|
+
# below :file_renaming_patterns: for more info)
|
19
|
+
:ignore_filename_for_files_to_rename: .rename_ignore
|
20
|
+
# Versioned project config file name.
|
21
|
+
:versioned_project_config_file_name: versioned-config.yaml
|
22
|
+
# Non versioned user's personal project config file name.
|
23
|
+
:unversioned_user_project_config_file_name: personal-config.yaml
|
24
|
+
# Entity definitions specific to the project
|
25
|
+
:project_entity_definitions_directory_name: entity_definitions
|
26
|
+
# Templates specific to the project
|
27
|
+
:project_templates_directory_name: templates-templates
|
28
|
+
# Directory name where entities are stored
|
29
|
+
:project_entities_directory_name: entities
|
30
|
+
# Directory name where user (unversioned) entities are stored
|
31
|
+
:user_entities_directory_name: user_entities
|
32
|
+
# Directory name where repository plugins are stored
|
33
|
+
:project_plugins_directory_name: plugins
|
34
|
+
# Root directory where builds are generated
|
35
|
+
:project_build_root_directory_name: build
|
36
|
+
|
37
|
+
|
38
|
+
# DSL CUSTOMIZATIONS
|
39
|
+
|
40
|
+
# Customizations for the shell. Basically defining various behaviors
|
41
|
+
# of Pry which is the underlying REPL.
|
42
|
+
:shell_dsl:
|
43
|
+
:prompt_level_1: 'PowerStencil DSL> '
|
44
|
+
:prompt_level_2: 'PowerStencil DSL --> '
|
45
|
+
:session_greetings: |
|
46
|
+
-------------------------------------------------------------------------------
|
47
|
+
Welcome to the PowerStencil shell session
|
48
|
+
In this shell you have access to anything the templating engine has access to.
|
49
|
+
You can view, edit, save entities.
|
50
|
+
|
51
|
+
- Retrieve and manipulate entities using the `entities` hash.
|
52
|
+
- Persist your changes using the `save` method on each entity.
|
53
|
+
- Create new project or user entities using `new_<type>` and `user_new_<type>`
|
54
|
+
methods (see `available_entity_types` for a list of possible types).
|
55
|
+
- And of course, it is a fully fledged Ruby Pry REPL, so you can do anything
|
56
|
+
you want...
|
57
|
+
|
58
|
+
Type `exit` to end your session.
|
59
|
+
-------------------------------------------------------------------------------
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
# TEMPLATING ENGINE
|
64
|
+
|
65
|
+
# Map to define which kind of template engine for which type of file. Be careful if you
|
66
|
+
# overlap two definitions. Warning, it is ruby Regex not shell pattern !
|
67
|
+
:templating_engines_map:
|
68
|
+
# Currently all files are rendered using ERB engine
|
69
|
+
:erb: '.*'
|
70
|
+
|
71
|
+
# Files matching particular patterns can be changed on the fly
|
72
|
+
:file_renaming_patterns:
|
73
|
+
# Erb files
|
74
|
+
^(.+)\.erb$: '\1'
|
75
|
+
|
76
|
+
|
77
|
+
# PLUGINS
|
78
|
+
|
79
|
+
# Define the property to avoid a nil. It represents the plugins that are provided
|
80
|
+
# as real Ruby gems. Local plugins defined in the `:project_plugins_directory_name:`
|
81
|
+
# are automatically discovered and loaded.
|
82
|
+
:project_plugins: []
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
# MISC
|
87
|
+
|
88
|
+
# Default log level (warn)
|
89
|
+
:log-level: 2
|
90
|
+
# Maximum number of retries when editing a file
|
91
|
+
:max_file_edit_retry_times: 3
|
92
|
+
|