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.
- checksums.yaml +4 -4
- data/.reek +3 -0
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +32 -9
- data/Gemfile +5 -0
- data/Gemfile.lock +15 -13
- data/README.md +56 -0
- data/Rakefile +182 -63
- data/bin/tab_completion.sh +21 -3
- data/bin/tab_completion.sh.erb +23 -0
- data/lib/cli.rb +19 -0
- data/lib/environment_opt_parse.rb +200 -0
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +222 -139
- data/lib/menu.yml +135 -64
- data/lib/object_present.rb +40 -0
- data/lib/shared.rb +3 -14
- data/lib/tap.rb +76 -21
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0c996cc59c02f9cfff6948467f4714bfb7e010ec61f886b9508b4af1a80dbc6
|
4
|
+
data.tar.gz: 9cd5bbe3d4b59c5d272ae42bd58ef228132a4af6471ee7d31867a69742c8b9ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2a005d3d3d4550644d470ea734902fb3ba796de73d115a041dccbcdee85a675956427ee20e8a6fb68df91c8a5b96cc820458f61120e71ab64f568563145689a
|
7
|
+
data.tar.gz: 3eadd9f350b5138f808b7ce986f2b6a5b8f747c650788c36b7d46b1ed17eccde6b018862c1334e1277fe29a27f617fe08d44b45e2bed6f182888713df813c04f
|
data/.reek
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -7,8 +7,6 @@
|
|
7
7
|
- hidden w , w/o () in names
|
8
8
|
- fix regexp in pathnames
|
9
9
|
|
10
|
-
- [ ] read file once to allow for tempdoc stream
|
11
|
-
|
12
10
|
- tree display
|
13
11
|
|
14
12
|
- [ ] mde options, user prompt, in md file or included file
|
@@ -48,25 +46,50 @@
|
|
48
46
|
|
49
47
|
- [ ] tab completion example ascii demo
|
50
48
|
|
51
|
-
- [ ] reorder help list
|
52
|
-
|
53
49
|
- [ ] parameters or (env vars) in menu
|
54
50
|
- [ ] config menu or read env vars
|
55
51
|
- [ ] enable/disable script, output saving per file
|
56
52
|
- [ ] keep values between runs so same env vars are not prompted
|
57
|
-
- [ ] move menu data to required file
|
58
|
-
|
59
|
-
- [ ] tab complation for short option names
|
60
53
|
|
61
54
|
- [ ] option to list full menu
|
62
55
|
|
63
56
|
- [ ] task confirmation block option or bash template, env names
|
64
|
-
|
57
|
+
|
65
58
|
- [ ] configuration block `mde_config` anywhere in file
|
66
59
|
- [ ] configuration block `mde_config` anywhere in folder config file
|
67
60
|
```yaml :(mde_config)```
|
68
61
|
- [x] fix execution stdin, stdout to allow for ask function
|
69
62
|
- [ ] fix execution stdin, stdout to allow for tty-prompt
|
63
|
+
- [ ] accept stdin as filename `-`
|
64
|
+
- [ ] fix
|
65
|
+
$ bin/mde
|
66
|
+
Choose a file: * Exit
|
67
|
+
No blocks found.
|
68
|
+
Choose a block: * Exit
|
69
|
+
|
70
|
+
- [ ] accept `!` shell execute command at prompt
|
71
|
+
- [ ] menu response: re-exec last saved script (like mde --select-recent-script)
|
72
|
+
|
73
|
+
- [ ] process shebang in markdown
|
74
|
+
- [ ] ignore shebang in markdown in rest of processing
|
75
|
+
- [! ] search for document in path
|
76
|
+
- [! ] search for document in custom path
|
77
|
+
- [ ] doc use of `#!/usr/bin/env mde`
|
78
|
+
- [ ] command to export each command to file, menu for list
|
79
|
+
- [ ] list of fenced code blocks to ignore, eg ```expect or ```mermaid
|
80
|
+
|
81
|
+
## [1.3.1] - 2022-10-29
|
82
|
+
|
83
|
+
### Added
|
84
|
+
|
85
|
+
- Delay to allow all command output to be received
|
86
|
+
- Display an error message when the specified document file is missing
|
87
|
+
- Options to display, format and colorize menu dividers and demarcations
|
88
|
+
- Tab completion for short option names
|
89
|
+
|
90
|
+
### Changed
|
91
|
+
|
92
|
+
- Fix handling of document supplied by process substitution
|
70
93
|
|
71
94
|
## [1.3.0] - 2022-07-16
|
72
95
|
|
@@ -241,7 +264,7 @@ e.g. `MDE_OUTPUT_VIEWER_OPTIONS="-a '/Applications/Sublime Text.app'" mde --sele
|
|
241
264
|
|
242
265
|
| YAML Name | Environment Variable | Default |
|
243
266
|
| :--- | :--- | :--- |
|
244
|
-
|
|
267
|
+
| block_name_hidden_match | MDE_BLOCK_NAME_HIDDEN_MATCH | `^\(.+\)$` |
|
245
268
|
| block_name_match | MDE_BLOCK_NAME_MATCH | `:(?<title>\S+)( \|$)` |
|
246
269
|
| block_required_scan | MDE_BLOCK_REQUIRED_SCAN | `\+\S+` |
|
247
270
|
| fenced_start_and_end_match | MDE_FENCED_START_AND_END_MATCH | ``^`{3,}`` |
|
data/Gemfile
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# echo "gem: --no-document" >> ~/.gemrc
|
4
|
+
# bundle install --path vendor/bundle
|
5
|
+
|
3
6
|
source 'https://rubygems.org'
|
4
7
|
|
5
8
|
gemspec
|
@@ -8,9 +11,11 @@ gem 'erb'
|
|
8
11
|
gem 'minitest', '~> 5.0'
|
9
12
|
gem 'rake', '~> 13.0'
|
10
13
|
gem 'reek'
|
14
|
+
# gem 'rspec'
|
11
15
|
gem 'rubocop', '~> 1.21'
|
12
16
|
gem 'rubocop-minitest', require: false
|
13
17
|
gem 'rubocop-rake', require: false
|
18
|
+
# gem 'rubocop-rspec', require: false
|
14
19
|
gem 'shellwords'
|
15
20
|
gem 'uri'
|
16
21
|
gem 'yaml'
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
markdown_exec (1.3.
|
4
|
+
markdown_exec (1.3.1)
|
5
5
|
clipboard (~> 1.3.6)
|
6
6
|
open3 (~> 0.1.1)
|
7
7
|
optparse (~> 0.1.1)
|
@@ -12,16 +12,17 @@ GEM
|
|
12
12
|
remote: https://rubygems.org/
|
13
13
|
specs:
|
14
14
|
ast (2.4.2)
|
15
|
-
cgi (0.3.
|
15
|
+
cgi (0.3.3)
|
16
16
|
clipboard (1.3.6)
|
17
17
|
erb (2.2.3)
|
18
18
|
cgi
|
19
|
+
json (2.6.2)
|
19
20
|
kwalify (0.7.2)
|
20
|
-
minitest (5.
|
21
|
+
minitest (5.16.3)
|
21
22
|
open3 (0.1.1)
|
22
23
|
optparse (0.1.1)
|
23
|
-
parallel (1.
|
24
|
-
parser (3.1.1
|
24
|
+
parallel (1.22.1)
|
25
|
+
parser (3.1.2.1)
|
25
26
|
ast (~> 2.4.1)
|
26
27
|
pastel (0.8.0)
|
27
28
|
tty-color (~> 0.5)
|
@@ -31,20 +32,21 @@ GEM
|
|
31
32
|
kwalify (~> 0.7.0)
|
32
33
|
parser (~> 3.1.0)
|
33
34
|
rainbow (>= 2.0, < 4.0)
|
34
|
-
regexp_parser (2.
|
35
|
+
regexp_parser (2.6.0)
|
35
36
|
rexml (3.2.5)
|
36
|
-
rubocop (1.
|
37
|
+
rubocop (1.37.1)
|
38
|
+
json (~> 2.3)
|
37
39
|
parallel (~> 1.10)
|
38
|
-
parser (>= 3.1.
|
40
|
+
parser (>= 3.1.2.1)
|
39
41
|
rainbow (>= 2.2.2, < 4.0)
|
40
42
|
regexp_parser (>= 1.8, < 3.0)
|
41
|
-
rexml
|
42
|
-
rubocop-ast (>= 1.
|
43
|
+
rexml (>= 3.2.5, < 4.0)
|
44
|
+
rubocop-ast (>= 1.23.0, < 2.0)
|
43
45
|
ruby-progressbar (~> 1.7)
|
44
46
|
unicode-display_width (>= 1.4.0, < 3.0)
|
45
|
-
rubocop-ast (1.
|
47
|
+
rubocop-ast (1.23.0)
|
46
48
|
parser (>= 3.1.1.0)
|
47
|
-
rubocop-minitest (0.
|
49
|
+
rubocop-minitest (0.22.2)
|
48
50
|
rubocop (>= 0.90, < 2.0)
|
49
51
|
rubocop-rake (0.6.0)
|
50
52
|
rubocop (~> 1.0)
|
@@ -60,7 +62,7 @@ GEM
|
|
60
62
|
tty-screen (~> 0.8)
|
61
63
|
wisper (~> 2.0)
|
62
64
|
tty-screen (0.8.1)
|
63
|
-
unicode-display_width (2.
|
65
|
+
unicode-display_width (2.3.0)
|
64
66
|
uri (0.11.0)
|
65
67
|
wisper (2.0.1)
|
66
68
|
yaml (0.2.0)
|
data/README.md
CHANGED
@@ -235,3 +235,59 @@ vars1=$(
|
|
235
235
|
``` :(echo_vars)
|
236
236
|
echo "vars1: ${vars1:-missing}"
|
237
237
|
```
|
238
|
+
|
239
|
+
```bash :test_quick
|
240
|
+
cat README.md
|
241
|
+
```
|
242
|
+
|
243
|
+
- `echo "gem: --no-document" >> ~/.gemrc`
|
244
|
+
|
245
|
+
- `bundle install --path vendor/bundle`
|
246
|
+
|
247
|
+
```
|
248
|
+
bundle exec rake test
|
249
|
+
bundle exec rake rubocopminitest
|
250
|
+
# bundle exec rake reek
|
251
|
+
reek --config .reek .
|
252
|
+
```
|
253
|
+
|
254
|
+
```
|
255
|
+
bundle exec rake build
|
256
|
+
```
|
257
|
+
includes Rake::Task['update_menu_yml'].execute
|
258
|
+
Rake::Task['update_tab_completion'].execute
|
259
|
+
|
260
|
+
```
|
261
|
+
bundle exec rake uninstall
|
262
|
+
```
|
263
|
+
|
264
|
+
```
|
265
|
+
bundle exec rake install
|
266
|
+
```
|
267
|
+
|
268
|
+
```
|
269
|
+
bundle exec rake publish
|
270
|
+
```
|
271
|
+
|
272
|
+
```
|
273
|
+
bundle exec rake --tasks
|
274
|
+
```
|
275
|
+
```expect
|
276
|
+
rake build # Build markdown_exec-1.3.0.9.gem into the pkg directory / gem build
|
277
|
+
rake clean # Remove any temporary products / gem build clean
|
278
|
+
rake clobber # Remove any generated files
|
279
|
+
rake install # Build and install markdown_exec-1.3.0.9.gem into system gems / gem install
|
280
|
+
rake install:local # Build and install markdown_exec-1.3.0.9.gem into system gems without network access
|
281
|
+
rake publish # gem publish
|
282
|
+
rake reek # reek
|
283
|
+
rake release[remote] # Create tag v1.3.0.9 and build and push markdown_exec-1.3.0.9.gem to rubygems.org
|
284
|
+
rake rubocop # Run RuboCop
|
285
|
+
rake rubocop:autocorrect # Autocorrect RuboCop offenses (only when it's safe)
|
286
|
+
rake rubocop:autocorrect_all # Autocorrect RuboCop offenses (safe and unsafe)
|
287
|
+
rake rubocopminitest # named task because minitest not included in rubocop tests
|
288
|
+
rake test # Run tests
|
289
|
+
rake uninstall # gem uninstall
|
290
|
+
rake update_installed_tab_completion # update installed tab_completion.sh
|
291
|
+
rake update_menu_yml # update menu.yml
|
292
|
+
rake update_tab_completion # update tab_completion.sh
|
293
|
+
```
|