markdown_exec 1.3.0 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.reek +3 -0
- data/.rubocop.yml +19 -1
- data/CHANGELOG.md +39 -9
- data/Gemfile +5 -0
- data/Gemfile.lock +33 -13
- data/README.md +60 -0
- data/Rakefile +189 -63
- data/bin/tab_completion.sh +21 -3
- data/bin/tab_completion.sh.erb +23 -0
- data/lib/cli.rb +19 -0
- data/lib/env.rb +7 -3
- data/lib/env_opts.rb +244 -0
- data/lib/environment_opt_parse.rb +204 -0
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +211 -145
- data/lib/menu.yml +135 -64
- data/lib/object_present.rb +39 -0
- data/lib/shared.rb +3 -14
- data/lib/tap.rb +95 -20
- data/lib/yaml_env_opts.rb +60 -0
- metadata +7 -2
data/Rakefile
CHANGED
@@ -3,8 +3,17 @@
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'rake/testtask'
|
5
5
|
require 'erb'
|
6
|
+
# require 'rspec'
|
7
|
+
require 'rubocop'
|
6
8
|
require 'yaml'
|
7
9
|
|
10
|
+
# begin
|
11
|
+
# require 'rspec/core/rake_task'
|
12
|
+
# RSpec::Core::RakeTask.new(:spec)
|
13
|
+
# rescue LoadError
|
14
|
+
# puts 'RSpec is required to run some tests.'
|
15
|
+
# end
|
16
|
+
|
8
17
|
Rake::TestTask.new(:test) do |task|
|
9
18
|
task.libs << 'test'
|
10
19
|
task.libs << 'lib'
|
@@ -13,15 +22,19 @@ end
|
|
13
22
|
|
14
23
|
require 'rubocop/rake_task'
|
15
24
|
|
25
|
+
require_relative 'lib/cli'
|
16
26
|
require_relative 'lib/markdown_exec/version'
|
17
27
|
require_relative 'lib/shared'
|
18
28
|
require_relative 'lib/tap'
|
19
29
|
|
30
|
+
include CLI
|
31
|
+
|
20
32
|
include Tap
|
21
33
|
tap_config envvar: MarkdownExec::TAP_DEBUG
|
22
34
|
|
23
35
|
RuboCop::RakeTask.new do |task|
|
24
36
|
task.requires << 'rubocop-minitest'
|
37
|
+
task.requires << 'rubocop-rspec'
|
25
38
|
end
|
26
39
|
|
27
40
|
desc 'named task because minitest not included in rubocop tests'
|
@@ -29,7 +42,14 @@ task :rubocopminitest do
|
|
29
42
|
`rubocop --require rubocop-minitest`
|
30
43
|
end
|
31
44
|
|
45
|
+
# desc 'rspec'
|
46
|
+
# task :rspec do
|
47
|
+
# puts "in rspec"
|
48
|
+
# `pwd && rspec`
|
49
|
+
# end
|
50
|
+
|
32
51
|
task default: %i[test reek rubocop rubocopminitest]
|
52
|
+
# task default: %i[rspec test reek rubocop rubocopminitest]
|
33
53
|
|
34
54
|
# task :default => :build
|
35
55
|
|
@@ -83,14 +103,14 @@ task :update_menu_yml do
|
|
83
103
|
long_name: 'block-name',
|
84
104
|
opt_name: 'block_name',
|
85
105
|
short_name: 'b',
|
86
|
-
|
106
|
+
procname: 'val_as_str'
|
87
107
|
},
|
88
108
|
{
|
89
109
|
arg_name: 'PATH',
|
90
110
|
default: '.',
|
91
111
|
description: 'Read configuration file',
|
92
112
|
long_name: 'config',
|
93
|
-
|
113
|
+
procname: 'path'
|
94
114
|
},
|
95
115
|
{
|
96
116
|
arg_name: 'BOOL',
|
@@ -99,7 +119,7 @@ task :update_menu_yml do
|
|
99
119
|
env_var: MarkdownExec::TAP_DEBUG,
|
100
120
|
long_name: 'debug',
|
101
121
|
short_name: 'd',
|
102
|
-
|
122
|
+
procname: 'debug'
|
103
123
|
},
|
104
124
|
{
|
105
125
|
arg_name: 'RELATIVE_PATH',
|
@@ -109,13 +129,13 @@ task :update_menu_yml do
|
|
109
129
|
long_name: 'filename',
|
110
130
|
opt_name: 'filename',
|
111
131
|
short_name: 'f',
|
112
|
-
|
132
|
+
procname: 'val_as_str'
|
113
133
|
},
|
114
134
|
{
|
115
135
|
description: 'App help',
|
116
136
|
long_name: 'help',
|
117
137
|
short_name: 'h',
|
118
|
-
|
138
|
+
procname: 'help'
|
119
139
|
},
|
120
140
|
{
|
121
141
|
arg_name: 'RELATIVE_PATH',
|
@@ -125,7 +145,7 @@ task :update_menu_yml do
|
|
125
145
|
long_name: 'path',
|
126
146
|
opt_name: 'path',
|
127
147
|
short_name: 'p',
|
128
|
-
|
148
|
+
procname: 'val_as_str'
|
129
149
|
},
|
130
150
|
{
|
131
151
|
arg_name: 'BOOL',
|
@@ -135,24 +155,24 @@ task :update_menu_yml do
|
|
135
155
|
long_name: 'user-must-approve',
|
136
156
|
opt_name: 'user_must_approve',
|
137
157
|
short_name: 'q',
|
138
|
-
|
158
|
+
procname: 'val_as_bool'
|
139
159
|
},
|
140
160
|
{
|
141
161
|
description: "Print the gem's version",
|
142
162
|
long_name: 'version',
|
143
163
|
short_name: 'v',
|
144
|
-
|
164
|
+
procname: 'version'
|
145
165
|
},
|
146
166
|
{
|
147
167
|
description: 'Exit app',
|
148
168
|
long_name: 'exit',
|
149
169
|
short_name: 'x',
|
150
|
-
|
170
|
+
procname: 'exit' # ->(_) { exit }
|
151
171
|
},
|
152
172
|
{
|
153
173
|
description: 'Show current configuration values',
|
154
174
|
short_name: '0',
|
155
|
-
|
175
|
+
procname: 'show_config'
|
156
176
|
},
|
157
177
|
|
158
178
|
## commands
|
@@ -161,7 +181,7 @@ task :update_menu_yml do
|
|
161
181
|
description: 'List blocks',
|
162
182
|
long_name: 'list-blocks',
|
163
183
|
opt_name: 'list_blocks',
|
164
|
-
|
184
|
+
procname: 'val_as_bool'
|
165
185
|
},
|
166
186
|
{
|
167
187
|
description: 'List default configuration as environment variables',
|
@@ -177,49 +197,49 @@ task :update_menu_yml do
|
|
177
197
|
description: 'List docs in current folder',
|
178
198
|
long_name: 'list-docs',
|
179
199
|
opt_name: 'list_docs',
|
180
|
-
|
200
|
+
procname: 'val_as_bool'
|
181
201
|
},
|
182
202
|
{
|
183
203
|
description: 'List recent saved output',
|
184
204
|
long_name: 'list-recent-output',
|
185
205
|
opt_name: 'list_recent_output',
|
186
|
-
|
206
|
+
procname: 'val_as_bool'
|
187
207
|
},
|
188
208
|
{
|
189
209
|
description: 'List recent saved scripts',
|
190
210
|
long_name: 'list-recent-scripts',
|
191
211
|
opt_name: 'list_recent_scripts',
|
192
|
-
|
212
|
+
procname: 'val_as_bool'
|
193
213
|
},
|
194
214
|
{
|
195
215
|
description: 'Select and execute a recently saved output',
|
196
216
|
long_name: 'select-recent-output',
|
197
217
|
opt_name: 'select_recent_output',
|
198
|
-
|
218
|
+
procname: 'val_as_bool'
|
199
219
|
},
|
200
220
|
{
|
201
221
|
description: 'Select and execute a recently saved script',
|
202
222
|
long_name: 'select-recent-script',
|
203
223
|
opt_name: 'select_recent_script',
|
204
|
-
|
224
|
+
procname: 'val_as_bool'
|
205
225
|
},
|
206
226
|
{
|
207
227
|
description: 'List tab completions',
|
208
228
|
long_name: 'tab-completions',
|
209
229
|
opt_name: 'tab_completions',
|
210
|
-
|
230
|
+
procname: 'val_as_bool'
|
211
231
|
},
|
212
232
|
{
|
213
233
|
description: 'Run most recently saved script',
|
214
234
|
long_name: 'run-last-script',
|
215
235
|
opt_name: 'run_last_script',
|
216
|
-
|
236
|
+
procname: 'val_as_bool'
|
217
237
|
},
|
218
238
|
{
|
219
239
|
description: 'Gem home folder',
|
220
240
|
long_name: 'pwd',
|
221
241
|
opt_name: 'pwd',
|
222
|
-
|
242
|
+
procname: 'val_as_bool'
|
223
243
|
},
|
224
244
|
|
225
245
|
## secondary options
|
@@ -231,7 +251,7 @@ task :update_menu_yml do
|
|
231
251
|
env_var: 'MDE_DISPLAY_LEVEL',
|
232
252
|
long_name: 'display-level',
|
233
253
|
opt_name: 'display_level',
|
234
|
-
|
254
|
+
procname: 'val_as_int'
|
235
255
|
},
|
236
256
|
{
|
237
257
|
arg_name: 'INT.1-',
|
@@ -240,7 +260,7 @@ task :update_menu_yml do
|
|
240
260
|
env_var: 'MDE_LIST_COUNT',
|
241
261
|
long_name: 'list-count',
|
242
262
|
opt_name: 'list_count',
|
243
|
-
|
263
|
+
procname: 'val_as_int'
|
244
264
|
},
|
245
265
|
{
|
246
266
|
arg_name: 'PREFIX',
|
@@ -249,7 +269,7 @@ task :update_menu_yml do
|
|
249
269
|
env_var: 'MDE_LOGGED_STDOUT_FILENAME_PREFIX',
|
250
270
|
# long_name: 'logged-stdout-filename-prefix',
|
251
271
|
opt_name: 'logged_stdout_filename_prefix',
|
252
|
-
|
272
|
+
procname: 'val_as_str'
|
253
273
|
},
|
254
274
|
{
|
255
275
|
arg_name: 'BOOL',
|
@@ -258,7 +278,7 @@ task :update_menu_yml do
|
|
258
278
|
env_var: 'MDE_MENU_BLOCKS_WITH_DOCNAME',
|
259
279
|
# long_name: 'menu-blocks-with-docname',
|
260
280
|
opt_name: 'menu_blocks_with_docname',
|
261
|
-
|
281
|
+
procname: 'val_as_bool'
|
262
282
|
},
|
263
283
|
{
|
264
284
|
arg_name: 'BOOL',
|
@@ -267,7 +287,7 @@ task :update_menu_yml do
|
|
267
287
|
env_var: 'MDE_MENU_BLOCKS_WITH_HEADINGS',
|
268
288
|
# long_name: 'menu-blocks-with-headings',
|
269
289
|
opt_name: 'menu_blocks_with_headings',
|
270
|
-
|
290
|
+
procname: 'val_as_bool'
|
271
291
|
},
|
272
292
|
{
|
273
293
|
arg_name: 'BOOL',
|
@@ -276,7 +296,7 @@ task :update_menu_yml do
|
|
276
296
|
env_var: 'MDE_OUTPUT_EXECUTION_SUMMARY',
|
277
297
|
long_name: 'output-execution-summary',
|
278
298
|
opt_name: 'output_execution_summary',
|
279
|
-
|
299
|
+
procname: 'val_as_bool'
|
280
300
|
},
|
281
301
|
{
|
282
302
|
arg_name: 'BOOL',
|
@@ -285,7 +305,7 @@ task :update_menu_yml do
|
|
285
305
|
env_var: 'MDE_OUTPUT_SCRIPT',
|
286
306
|
long_name: 'output-script',
|
287
307
|
opt_name: 'output_script',
|
288
|
-
|
308
|
+
procname: 'val_as_bool'
|
289
309
|
},
|
290
310
|
{
|
291
311
|
arg_name: 'BOOL',
|
@@ -294,7 +314,7 @@ task :update_menu_yml do
|
|
294
314
|
env_var: 'MDE_OUTPUT_STDOUT',
|
295
315
|
long_name: 'output-stdout',
|
296
316
|
opt_name: 'output_stdout',
|
297
|
-
|
317
|
+
procname: 'val_as_bool'
|
298
318
|
},
|
299
319
|
{
|
300
320
|
arg_name: 'BOOL',
|
@@ -303,7 +323,7 @@ task :update_menu_yml do
|
|
303
323
|
env_var: 'MDE_SAVE_EXECUTED_SCRIPT',
|
304
324
|
long_name: 'save-executed-script',
|
305
325
|
opt_name: 'save_executed_script',
|
306
|
-
|
326
|
+
procname: 'val_as_bool'
|
307
327
|
},
|
308
328
|
{
|
309
329
|
arg_name: 'BOOL',
|
@@ -312,7 +332,7 @@ task :update_menu_yml do
|
|
312
332
|
env_var: 'MDE_SAVE_EXECUTION_OUTPUT',
|
313
333
|
long_name: 'save-execution-output',
|
314
334
|
opt_name: 'save_execution_output',
|
315
|
-
|
335
|
+
procname: 'val_as_bool'
|
316
336
|
},
|
317
337
|
{
|
318
338
|
arg_name: 'INT',
|
@@ -321,7 +341,7 @@ task :update_menu_yml do
|
|
321
341
|
env_var: 'MDE_SAVED_SCRIPT_CHMOD',
|
322
342
|
# long_name: 'saved-script-chmod',
|
323
343
|
opt_name: 'saved_script_chmod',
|
324
|
-
|
344
|
+
procname: 'val_as_int'
|
325
345
|
},
|
326
346
|
{
|
327
347
|
arg_name: 'PREFIX',
|
@@ -330,7 +350,7 @@ task :update_menu_yml do
|
|
330
350
|
env_var: 'MDE_SAVED_SCRIPT_FILENAME_PREFIX',
|
331
351
|
# long_name: 'saved-script-filename-prefix',
|
332
352
|
opt_name: 'saved_script_filename_prefix',
|
333
|
-
|
353
|
+
procname: 'val_as_str'
|
334
354
|
},
|
335
355
|
{
|
336
356
|
arg_name: 'RELATIVE_PATH',
|
@@ -339,7 +359,7 @@ task :update_menu_yml do
|
|
339
359
|
env_var: 'MDE_SAVED_SCRIPT_FOLDER',
|
340
360
|
long_name: 'saved-script-folder',
|
341
361
|
opt_name: 'saved_script_folder',
|
342
|
-
|
362
|
+
procname: 'val_as_str'
|
343
363
|
},
|
344
364
|
{
|
345
365
|
arg_name: 'GLOB',
|
@@ -348,7 +368,7 @@ task :update_menu_yml do
|
|
348
368
|
env_var: 'MDE_SAVED_SCRIPT_GLOB',
|
349
369
|
# long_name: 'saved-script-glob',
|
350
370
|
opt_name: 'saved_script_glob',
|
351
|
-
|
371
|
+
procname: 'val_as_str'
|
352
372
|
},
|
353
373
|
{
|
354
374
|
arg_name: 'RELATIVE_PATH',
|
@@ -357,7 +377,7 @@ task :update_menu_yml do
|
|
357
377
|
env_var: 'MDE_SAVED_STDOUT_FOLDER',
|
358
378
|
long_name: 'saved-stdout-folder',
|
359
379
|
opt_name: 'saved_stdout_folder',
|
360
|
-
|
380
|
+
procname: 'val_as_str'
|
361
381
|
},
|
362
382
|
{
|
363
383
|
arg_name: 'GLOB',
|
@@ -366,133 +386,239 @@ task :update_menu_yml do
|
|
366
386
|
env_var: 'MDE_SAVED_STDOUT_GLOB',
|
367
387
|
# long_name: 'saved-stdout-glob',
|
368
388
|
opt_name: 'saved_stdout_glob',
|
369
|
-
|
389
|
+
procname: 'val_as_str'
|
370
390
|
},
|
371
391
|
|
372
392
|
{
|
373
393
|
default: '^[\(\[].*[\)\]]$',
|
374
394
|
description: 'Pattern for blocks to hide from user-selection',
|
375
|
-
env_var: '
|
376
|
-
opt_name: '
|
377
|
-
|
395
|
+
env_var: 'MDE_BLOCK_NAME_HIDDEN_MATCH',
|
396
|
+
opt_name: 'block_name_hidden_match',
|
397
|
+
procname: 'val_as_str'
|
378
398
|
},
|
379
399
|
{
|
380
400
|
default: ':(?<title>\S+)( |$)',
|
381
401
|
env_var: 'MDE_BLOCK_NAME_MATCH',
|
382
402
|
opt_name: 'block_name_match',
|
383
|
-
|
403
|
+
procname: 'val_as_str'
|
384
404
|
},
|
385
405
|
{
|
386
406
|
default: '%\([^\)]+\)',
|
387
407
|
env_var: 'MDE_BLOCK_CALLS_SCAN',
|
388
408
|
opt_name: 'block_calls_scan',
|
389
|
-
|
409
|
+
procname: 'val_as_str'
|
390
410
|
},
|
391
411
|
{
|
392
412
|
default: '\+\S+',
|
393
413
|
env_var: 'MDE_BLOCK_REQUIRED_SCAN',
|
394
414
|
opt_name: 'block_required_scan',
|
395
|
-
|
415
|
+
procname: 'val_as_str'
|
396
416
|
},
|
397
417
|
{
|
398
418
|
default: '<(?<full>(?<type>\$)?(?<name>[A-Za-z]\S*))',
|
399
419
|
env_var: 'MDE_BLOCK_STDIN_SCAN',
|
400
420
|
opt_name: 'block_stdin_scan',
|
401
|
-
|
421
|
+
procname: 'val_as_str'
|
402
422
|
},
|
403
423
|
{
|
404
424
|
default: '>(?<full>(?<type>\$)?(?<name>[A-Za-z]\S*))',
|
405
425
|
env_var: 'MDE_BLOCK_STDOUT_SCAN',
|
406
426
|
opt_name: 'block_stdout_scan',
|
407
|
-
|
427
|
+
procname: 'val_as_str'
|
408
428
|
},
|
409
429
|
{
|
410
430
|
default: '> ',
|
411
431
|
env_var: 'MDE_DISPLAY_LEVEL_XBASE_PREFIX',
|
412
432
|
opt_name: 'display_level_xbase_prefix',
|
413
|
-
|
433
|
+
procname: 'val_as_str'
|
414
434
|
},
|
415
435
|
{
|
416
436
|
default: '^`{3,}',
|
417
437
|
env_var: 'MDE_FENCED_START_AND_END_MATCH',
|
418
438
|
opt_name: 'fenced_start_and_end_match',
|
419
|
-
|
439
|
+
procname: 'val_as_str'
|
420
440
|
},
|
421
441
|
{
|
422
442
|
default: '^`{3,}(?<shell>[^`\s]*) *(?<name>.*)$',
|
423
443
|
env_var: 'MDE_FENCED_START_EX_MATCH',
|
424
444
|
opt_name: 'fenced_start_ex_match',
|
425
|
-
|
445
|
+
procname: 'val_as_str'
|
426
446
|
},
|
427
447
|
{
|
428
448
|
default: '^# *(?<name>[^#]*?) *$',
|
429
449
|
env_var: 'MDE_HEADING1_MATCH',
|
430
450
|
opt_name: 'heading1_match',
|
431
|
-
|
451
|
+
procname: 'val_as_str'
|
432
452
|
},
|
433
453
|
{
|
434
454
|
default: '^## *(?<name>[^#]*?) *$',
|
435
455
|
env_var: 'MDE_HEADING2_MATCH',
|
436
456
|
opt_name: 'heading2_match',
|
437
|
-
|
457
|
+
procname: 'val_as_str'
|
438
458
|
},
|
439
459
|
{
|
440
460
|
default: '^### *(?<name>.+?) *$',
|
441
461
|
env_var: 'MDE_HEADING3_MATCH',
|
442
462
|
opt_name: 'heading3_match',
|
443
|
-
|
463
|
+
procname: 'val_as_str'
|
444
464
|
},
|
445
465
|
{
|
446
466
|
default: '*.[Mm][Dd]',
|
447
467
|
env_var: 'MDE_MD_FILENAME_GLOB',
|
448
468
|
opt_name: 'md_filename_glob',
|
449
|
-
|
469
|
+
procname: 'val_as_str'
|
450
470
|
},
|
451
471
|
{
|
452
472
|
default: '.+\\.md',
|
453
473
|
env_var: 'MDE_MD_FILENAME_MATCH',
|
454
474
|
opt_name: 'md_filename_match',
|
455
|
-
|
475
|
+
procname: 'val_as_str'
|
476
|
+
},
|
477
|
+
{
|
478
|
+
default: '-:= %s =:-',
|
479
|
+
description: 'format for menu dividers and demarcations',
|
480
|
+
env_var: 'MDE_MENU_DIVIDER_FORMAT',
|
481
|
+
opt_name: 'menu_divider_format',
|
482
|
+
procname: 'val_as_str'
|
483
|
+
},
|
484
|
+
{
|
485
|
+
default: 'magenta',
|
486
|
+
description: 'Color of menu divider',
|
487
|
+
env_var: 'MDE_MENU_DIVIDER_COLOR',
|
488
|
+
opt_name: 'menu_divider_color',
|
489
|
+
procname: 'val_as_str'
|
456
490
|
},
|
457
491
|
{
|
458
492
|
default: '^::: +(?<name>.+?)$',
|
459
493
|
description: 'Pattern for topics/dividers in block selection menu',
|
460
494
|
env_var: 'MDE_MENU_DIVIDER_MATCH',
|
461
495
|
opt_name: 'menu_divider_match',
|
462
|
-
|
496
|
+
procname: 'val_as_str'
|
497
|
+
},
|
498
|
+
{
|
499
|
+
default: '>',
|
500
|
+
description: 'Symbol before each divider',
|
501
|
+
env_var: 'MDE_MENU_DIVIDER_SYMBOL',
|
502
|
+
opt_name: 'menu_divider_symbol',
|
503
|
+
procname: 'val_as_str'
|
504
|
+
},
|
505
|
+
{
|
506
|
+
default: '~~~',
|
507
|
+
description: 'closing demarcations for menu',
|
508
|
+
env_var: 'MDE_MENU_FINAL_DIVIDER',
|
509
|
+
opt_name: 'menu_final_divider',
|
510
|
+
procname: 'val_as_str'
|
511
|
+
},
|
512
|
+
{
|
513
|
+
default: '',
|
514
|
+
description: 'opening demarcation for menu',
|
515
|
+
env_var: 'MDE_MENU_INITIAL_DIVIDER',
|
516
|
+
opt_name: 'menu_initial_divider',
|
517
|
+
procname: 'val_as_str'
|
463
518
|
},
|
464
519
|
{
|
465
520
|
description: 'Options for viewing saved output file',
|
466
521
|
env_var: 'MDE_OUTPUT_VIEWER_OPTIONS',
|
467
522
|
opt_name: 'output_viewer_options',
|
468
|
-
|
523
|
+
procname: 'val_as_str'
|
469
524
|
},
|
470
525
|
{
|
471
|
-
default:
|
526
|
+
default: 36,
|
472
527
|
description: 'Maximum # of rows in select list',
|
473
528
|
env_var: 'MDE_SELECT_PAGE_HEIGHT',
|
474
529
|
opt_name: 'select_page_height',
|
475
|
-
|
530
|
+
procname: 'val_as_int'
|
476
531
|
},
|
477
532
|
{
|
478
533
|
default: '#!/usr/bin/env',
|
479
534
|
description: 'Shebang for saved scripts',
|
480
535
|
env_var: 'MDE_SHEBANG',
|
481
536
|
opt_name: 'shebang',
|
482
|
-
|
537
|
+
procname: 'val_as_str'
|
483
538
|
},
|
484
539
|
{
|
485
540
|
default: 'bash',
|
486
541
|
description: 'Shell for launched scripts',
|
487
542
|
env_var: 'MDE_SHELL',
|
488
543
|
opt_name: 'shell',
|
489
|
-
|
544
|
+
procname: 'val_as_str'
|
490
545
|
},
|
491
546
|
{
|
492
|
-
default: '
|
493
|
-
|
494
|
-
|
495
|
-
|
547
|
+
default: 'Process?',
|
548
|
+
description: 'Prompt to approve a block',
|
549
|
+
env_var: 'MDE_PROMPT_APPROVE_BLOCK',
|
550
|
+
opt_name: 'prompt_approve_block',
|
551
|
+
procname: 'val_as_str'
|
552
|
+
},
|
553
|
+
{
|
554
|
+
default: 'Choose a block:',
|
555
|
+
description: 'Prompt to select a block',
|
556
|
+
env_var: 'MDE_PROMPT_SELECT_BLOCK',
|
557
|
+
opt_name: 'prompt_select_block',
|
558
|
+
procname: 'val_as_str'
|
559
|
+
},
|
560
|
+
{
|
561
|
+
default: 'Choose a file:',
|
562
|
+
description: 'Prompt to select a markdown document',
|
563
|
+
env_var: 'MDE_PROMPT_SELECT_MD',
|
564
|
+
opt_name: 'prompt_select_md',
|
565
|
+
procname: 'val_as_str'
|
566
|
+
},
|
567
|
+
{
|
568
|
+
default: 'Choose a file:',
|
569
|
+
description: 'Prompt to select a saved file',
|
570
|
+
env_var: 'MDE_PROMPT_SELECT_OUTPUT',
|
571
|
+
opt_name: 'prompt_select_output',
|
572
|
+
procname: 'val_as_str'
|
573
|
+
},
|
574
|
+
{
|
575
|
+
default: 'Copy script to clipboard',
|
576
|
+
description: 'Prompt to copy script to clipboard',
|
577
|
+
env_var: 'MDE_PROMPT_SCRIPT_TO_CLIPBOARD',
|
578
|
+
opt_name: 'prompt_script_to_clipboard',
|
579
|
+
procname: 'val_as_str'
|
580
|
+
},
|
581
|
+
{
|
582
|
+
default: 'Save script',
|
583
|
+
description: 'Prompt to save script',
|
584
|
+
env_var: 'MDE_PROMPT_SAVE_SCRIPT',
|
585
|
+
opt_name: 'prompt_save_script',
|
586
|
+
procname: 'val_as_str'
|
587
|
+
},
|
588
|
+
{
|
589
|
+
default: 'No',
|
590
|
+
description: 'Prompt for no',
|
591
|
+
env_var: 'MDE_PROMPT_NO',
|
592
|
+
opt_name: 'prompt_no',
|
593
|
+
procname: 'val_as_str'
|
594
|
+
},
|
595
|
+
{
|
596
|
+
default: 'Yes',
|
597
|
+
description: 'Prompt for yes',
|
598
|
+
env_var: 'MDE_PROMPT_YES',
|
599
|
+
opt_name: 'prompt_yes',
|
600
|
+
procname: 'val_as_str'
|
601
|
+
},
|
602
|
+
{
|
603
|
+
default: ' #=#=#',
|
604
|
+
description: 'Output divider',
|
605
|
+
env_var: 'MDE_OUTPUT_DIVIDER',
|
606
|
+
opt_name: 'output_divider',
|
607
|
+
procname: 'val_as_str'
|
608
|
+
},
|
609
|
+
{
|
610
|
+
default: 'yellow',
|
611
|
+
description: 'Color of output divider',
|
612
|
+
env_var: 'MDE_OUTPUT_DIVIDER_COLOR',
|
613
|
+
opt_name: 'output_divider_color',
|
614
|
+
procname: 'val_as_str'
|
615
|
+
# },
|
616
|
+
# {
|
617
|
+
# default: '',
|
618
|
+
# description: '',
|
619
|
+
# env_var: 'MDE_PROMPT_',
|
620
|
+
# opt_name: 'prompt_',
|
621
|
+
# procname: 'val_as_str'
|
496
622
|
}
|
497
623
|
]
|
498
624
|
|
@@ -511,8 +637,8 @@ def update_tab_completion(target)
|
|
511
637
|
|
512
638
|
svhs = YAML.load File.open(MENU_YML)
|
513
639
|
svhs.each do |svh|
|
514
|
-
svh[:compreply] = value_for_cli(svh[:default]) if svh[:compreply].nil?
|
515
|
-
end.tap_inspect name: :svhs,
|
640
|
+
svh[:compreply] = CLI.value_for_cli(svh[:default]) if svh[:compreply].nil?
|
641
|
+
end.tap_inspect name: :svhs, type: :yaml
|
516
642
|
|
517
643
|
File.write target, ERB.new(File.read(filespec = File.join(BF, 'tab_completion.sh.erb'))).result(binding)
|
518
644
|
puts `stat #{filespec}`
|
data/bin/tab_completion.sh
CHANGED
@@ -13,7 +13,7 @@ __filedirs_all()
|
|
13
13
|
}
|
14
14
|
|
15
15
|
_mde_echo_version() {
|
16
|
-
echo "1.3.
|
16
|
+
echo "1.3.2"
|
17
17
|
}
|
18
18
|
|
19
19
|
_mde() {
|
@@ -34,12 +34,20 @@ _mde() {
|
|
34
34
|
|
35
35
|
--debug) COMPREPLY="0"; return 0 ;;
|
36
36
|
|
37
|
+
-d) COMPREPLY="0"; return 0 ;;
|
38
|
+
|
37
39
|
--filename) COMPREPLY="."; return 0 ;;
|
38
40
|
|
41
|
+
-f) COMPREPLY="."; return 0 ;;
|
42
|
+
|
39
43
|
--path) COMPREPLY="."; return 0 ;;
|
40
44
|
|
45
|
+
-p) COMPREPLY="."; return 0 ;;
|
46
|
+
|
41
47
|
--user-must-approve) COMPREPLY="1"; return 0 ;;
|
42
48
|
|
49
|
+
-q) COMPREPLY="1"; return 0 ;;
|
50
|
+
|
43
51
|
--display-level) COMPREPLY="1"; return 0 ;;
|
44
52
|
|
45
53
|
--list-count) COMPREPLY="32"; return 0 ;;
|
@@ -81,17 +89,27 @@ _mde() {
|
|
81
89
|
|
82
90
|
--block-name) COMPREPLY=".NAME."; return 0 ;;
|
83
91
|
|
92
|
+
-b) COMPREPLY=".NAME."; return 0 ;;
|
93
|
+
|
84
94
|
--config) COMPREPLY=".PATH."; return 0 ;;
|
85
95
|
|
86
96
|
--debug) COMPREPLY=".BOOL."; return 0 ;;
|
87
97
|
|
98
|
+
-d) COMPREPLY=".BOOL."; return 0 ;;
|
99
|
+
|
88
100
|
--filename) COMPREPLY=".RELATIVE_PATH."; return 0 ;;
|
89
101
|
|
102
|
+
-f) COMPREPLY=".RELATIVE_PATH."; return 0 ;;
|
103
|
+
|
90
104
|
--path) COMPREPLY=".RELATIVE_PATH."; return 0 ;;
|
91
105
|
|
106
|
+
-p) COMPREPLY=".RELATIVE_PATH."; return 0 ;;
|
107
|
+
|
92
108
|
--user-must-approve) COMPREPLY=".BOOL."; return 0 ;;
|
93
109
|
|
94
|
-
|
110
|
+
-q) COMPREPLY=".BOOL."; return 0 ;;
|
111
|
+
|
112
|
+
--display-level) COMPREPLY=".INT.0-3."; return 0 ;;
|
95
113
|
|
96
114
|
--list-count) COMPREPLY=".INT.1-."; return 0 ;;
|
97
115
|
|
@@ -120,4 +138,4 @@ _mde() {
|
|
120
138
|
|
121
139
|
complete -o filenames -o nospace -F _mde mde
|
122
140
|
# _mde_echo_version
|
123
|
-
# echo "Updated: 2022-
|
141
|
+
# echo "Updated: 2022-11-13 18:09:17 UTC"
|