markdown_exec 1.3.0 → 1.3.1

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