markdown_exec 2.0.8.1 → 2.0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +1 -1
- data/bin/tab_completion.sh +2 -2
- data/examples/linked.md +5 -4
- data/examples/pass-through.md +21 -3
- data/lib/hash_delegator.rb +15 -10
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +1 -1
- data/lib/menu.src.yml +5 -4
- data/lib/menu.yml +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 942e4a005f42e2f3c2bd4542ba1b61e666c7379c0a2d81a5427f14ec76590a7d
|
4
|
+
data.tar.gz: c38976432cd43684654663876cd6ee5fa35b40339d5217bae00e282c29cd7415
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e02a78e7a564273392203583c1b7d9502647c3379fa0894bf3b2a4b858127cfb8196a493d43e404395762449f267f8e68df48567585aa39d66d804c6c11e2edc
|
7
|
+
data.tar.gz: 1bf94ff09d5248dd54853eca88dbc8ebce6ce5c17e9e5110103a2bc91250fa099120a81c7de0f060afdc0d08c607e5fbb7096735aea9ffcb4c7a4ee9bb33220f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
Pass-through arguments after "--" to the script
|
4
|
+
M Gemfile.lock
|
5
|
+
M bin/tab_completion.sh
|
6
|
+
M examples/pass-through.md
|
7
|
+
M lib/hash_delegator.rb
|
8
|
+
M lib/markdown_exec.rb
|
9
|
+
M lib/markdown_exec/version.rb
|
10
|
+
M lib/menu.src.yml
|
11
|
+
M lib/menu.yml
|
12
|
+
|
3
13
|
## [2.0.8] - 2024-06-05
|
4
14
|
|
5
15
|
### Added
|
data/Gemfile.lock
CHANGED
data/bin/tab_completion.sh
CHANGED
@@ -13,7 +13,7 @@ __filedirs_all()
|
|
13
13
|
}
|
14
14
|
|
15
15
|
_mde_echo_version() {
|
16
|
-
echo "2.0.8.
|
16
|
+
echo "2.0.8.3"
|
17
17
|
}
|
18
18
|
|
19
19
|
_mde() {
|
@@ -178,4 +178,4 @@ _mde() {
|
|
178
178
|
|
179
179
|
complete -o filenames -o nospace -F _mde mde
|
180
180
|
# _mde_echo_version
|
181
|
-
# echo "Updated: 2024-06-
|
181
|
+
# echo "Updated: 2024-06-15 14:50:18 UTC"
|
data/examples/linked.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
Demonstrate setting variable values interactively for use in generated scripts.
|
2
2
|
|
3
3
|
```opts :(document_options)
|
4
|
+
menu_with_inherited_lines: true
|
4
5
|
pause_after_script_execution: false
|
5
6
|
user_must_approve: false
|
6
7
|
```
|
@@ -40,7 +41,7 @@ vars:
|
|
40
41
|
::: Set variable ALPHA in a Vars block
|
41
42
|
For each environment variable named in block,
|
42
43
|
append an inherited line that assigns the variable the specified value.
|
43
|
-
```vars :set_ALPHA_to_1_via_vars_block
|
44
|
+
```vars :[set_ALPHA_to_1_via_vars_block]
|
44
45
|
ALPHA: 1
|
45
46
|
```
|
46
47
|
|
@@ -48,7 +49,7 @@ ALPHA: 1
|
|
48
49
|
For each environment variable in `vars`,
|
49
50
|
append an inherited line that assigns the variable the specified value.
|
50
51
|
Subsequently, run the `display_variable_ALPHA` block.
|
51
|
-
```link :set_ALPHA_to_2_via_link_block_and_display
|
52
|
+
```link :[set_ALPHA_to_2_via_link_block_and_display]
|
52
53
|
block: display_variable_ALPHA
|
53
54
|
vars:
|
54
55
|
ALPHA: 2
|
@@ -59,14 +60,14 @@ Subsequently, run the `display_variable_ALPHA` block.
|
|
59
60
|
```bash :(bash_set_to_3)
|
60
61
|
ALPHA=3
|
61
62
|
```
|
62
|
-
```link :set_ALPHA_to_3_via_required_block_and_display +(bash_set_to_3)
|
63
|
+
```link :[set_ALPHA_to_3_via_required_block_and_display] +(bash_set_to_3)
|
63
64
|
block: display_variable_ALPHA
|
64
65
|
```
|
65
66
|
|
66
67
|
Evaluate the code in the required block `(bash_eval_set_to_4)` and
|
67
68
|
save (transformed) output into inherited lines.
|
68
69
|
Subsequently, run the `display_variable_ALPHA` block.
|
69
|
-
```link :set_ALPHA_to_4_via_evaluated_required_block_and_display +(bash_eval_set_to_4)
|
70
|
+
```link :[set_ALPHA_to_4_via_evaluated_required_block_and_display] +(bash_eval_set_to_4)
|
70
71
|
eval: true
|
71
72
|
next_block: display_variable_ALPHA
|
72
73
|
```
|
data/examples/pass-through.md
CHANGED
@@ -1,14 +1,32 @@
|
|
1
|
+
```opts :(document_options)
|
2
|
+
execute_in_own_window: false
|
3
|
+
pause_after_script_execution: true
|
4
|
+
save_executed_script: true
|
5
|
+
saved_script_folder: ../mde_logs
|
6
|
+
```
|
1
7
|
Pass-through arguments after "--" to the executed script.
|
2
8
|
|
3
9
|
A block can expect arguments to receive all arguments to MDE after "--".
|
4
10
|
|
5
|
-
For `mde examples/pass-through.md output_arguments --
|
11
|
+
For `mde examples/pass-through.md output_arguments -- 1 23`,
|
6
12
|
this block outputs:
|
7
13
|
|
8
|
-
ARGS:
|
14
|
+
ARGS: 1 23
|
15
|
+
|
16
|
+
::: Test
|
17
|
+
```bash
|
18
|
+
mde examples/pass-through.md output_arguments -- 1 23
|
19
|
+
```
|
9
20
|
|
10
|
-
:::
|
21
|
+
::: These options toggle the use of a separate window.
|
22
|
+
```opts
|
23
|
+
execute_in_own_window: true
|
24
|
+
```
|
25
|
+
```opts
|
26
|
+
execute_in_own_window: false
|
27
|
+
```
|
11
28
|
|
29
|
+
::: This block will output any command line arguments after "--".
|
12
30
|
```bash :output_arguments
|
13
31
|
echo "ARGS: $*"
|
14
32
|
```
|
data/lib/hash_delegator.rb
CHANGED
@@ -804,7 +804,7 @@ module MarkdownExec
|
|
804
804
|
system(
|
805
805
|
format(
|
806
806
|
@delegate_object[:execute_command_format],
|
807
|
-
command_execute_in_own_window_format_arguments
|
807
|
+
command_execute_in_own_window_format_arguments(rest: args ? args.join(' ') : '')
|
808
808
|
)
|
809
809
|
)
|
810
810
|
|
@@ -832,7 +832,7 @@ module MarkdownExec
|
|
832
832
|
@fout.fout "Error ENOENT: #{err.inspect}"
|
833
833
|
end
|
834
834
|
|
835
|
-
def command_execute_in_own_window_format_arguments(home: Dir.pwd)
|
835
|
+
def command_execute_in_own_window_format_arguments(home: Dir.pwd, rest: '')
|
836
836
|
{
|
837
837
|
batch_index: @run_state.batch_index,
|
838
838
|
batch_random: @run_state.batch_random,
|
@@ -842,6 +842,7 @@ module MarkdownExec
|
|
842
842
|
home: home,
|
843
843
|
output_filename: File.basename(@delegate_object[:logged_stdout_filespec]),
|
844
844
|
output_filespec: @delegate_object[:logged_stdout_filespec],
|
845
|
+
rest: rest,
|
845
846
|
script_filename: @run_state.saved_filespec,
|
846
847
|
script_filespec: File.join(home, @run_state.saved_filespec),
|
847
848
|
started_at: @run_state.started_at.strftime(
|
@@ -1481,6 +1482,7 @@ module MarkdownExec
|
|
1481
1482
|
# @param mdoc [YourMDocClass] An instance of the MDoc class.
|
1482
1483
|
#
|
1483
1484
|
def execute_shell_type(selected:, mdoc:, block_source:, link_state: LinkState.new)
|
1485
|
+
# binding.irb
|
1484
1486
|
if selected.fetch(:shell, '') == BlockType::LINK
|
1485
1487
|
debounce_reset
|
1486
1488
|
push_link_history_and_trigger_load(link_block_body: selected.fetch(:body, ''),
|
@@ -1694,7 +1696,6 @@ module MarkdownExec
|
|
1694
1696
|
|
1695
1697
|
def inpseq_execute_block(block_name)
|
1696
1698
|
@dml_block_state = block_state_for_name_from_cli(block_name)
|
1697
|
-
|
1698
1699
|
dump_and_warn_block_state(selected: @dml_block_state.block)
|
1699
1700
|
@dml_link_state, @dml_menu_default_dname = \
|
1700
1701
|
exec_bash_next_state(
|
@@ -1760,7 +1761,10 @@ module MarkdownExec
|
|
1760
1761
|
|
1761
1762
|
if link_block_data.fetch(LinkKeys::EXEC, false)
|
1762
1763
|
@run_state.files = Hash.new([])
|
1763
|
-
execute_command_with_streams([cmd])
|
1764
|
+
execute_command_with_streams([cmd]) do |_stdin, stdout, stderr, _thread|
|
1765
|
+
line = stdout || stderr
|
1766
|
+
output_lines.push(line) if line
|
1767
|
+
end
|
1764
1768
|
|
1765
1769
|
## select output_lines that look like assignment or match other specs
|
1766
1770
|
#
|
@@ -1827,6 +1831,7 @@ module MarkdownExec
|
|
1827
1831
|
document_filename: File.basename(@delegate_object[:filename]),
|
1828
1832
|
document_filespec: @delegate_object[:filename],
|
1829
1833
|
home: Dir.pwd,
|
1834
|
+
# rest: '',
|
1830
1835
|
started_at: Time.now.utc.strftime(@delegate_object[:execute_command_title_time_format])
|
1831
1836
|
}
|
1832
1837
|
end
|
@@ -2119,7 +2124,7 @@ module MarkdownExec
|
|
2119
2124
|
end
|
2120
2125
|
|
2121
2126
|
def pop_add_current_code_to_head_and_trigger_load(link_state, block_names, code_lines,
|
2122
|
-
dependencies, selected)
|
2127
|
+
dependencies, selected, next_block_name: nil)
|
2123
2128
|
pop = @link_history.pop # updatable
|
2124
2129
|
if pop.document_filename
|
2125
2130
|
next_state = LinkState.new(
|
@@ -2144,7 +2149,7 @@ module MarkdownExec
|
|
2144
2149
|
inherited_block_names: ((link_state&.inherited_block_names || []) + block_names).sort.uniq,
|
2145
2150
|
inherited_dependencies: (link_state&.inherited_dependencies || {}).merge(dependencies || {}), ### merge, not replace, key data
|
2146
2151
|
inherited_lines: HashDelegator.code_merge(link_state&.inherited_lines, code_lines),
|
2147
|
-
next_block_name:
|
2152
|
+
next_block_name: next_block_name,
|
2148
2153
|
next_document_filename: @delegate_object[:filename], # not next_document_filename
|
2149
2154
|
next_load_file: LoadFile::REUSE # not next_document_filename == @delegate_object[:filename] ? LoadFile::REUSE : LoadFile::LOAD
|
2150
2155
|
)
|
@@ -2422,7 +2427,7 @@ module MarkdownExec
|
|
2422
2427
|
end
|
2423
2428
|
end
|
2424
2429
|
|
2425
|
-
## append blocks loaded
|
2430
|
+
## append blocks loaded
|
2426
2431
|
#
|
2427
2432
|
if (load_expr = link_block_data.fetch(LinkKeys::LOAD, '')).present?
|
2428
2433
|
load_filespec = load_filespec_from_expression(load_expr)
|
@@ -2437,10 +2442,11 @@ module MarkdownExec
|
|
2437
2442
|
end
|
2438
2443
|
|
2439
2444
|
next_document_filename = write_inherited_lines_to_file(link_state, link_block_data)
|
2445
|
+
next_block_name = link_block_data.fetch(LinkKeys::NEXT_BLOCK, nil) || link_block_data.fetch(LinkKeys::BLOCK, nil) || ''
|
2440
2446
|
|
2441
2447
|
if link_block_data[LinkKeys::RETURN]
|
2442
2448
|
pop_add_current_code_to_head_and_trigger_load(link_state, block_names, code_lines,
|
2443
|
-
dependencies, selected)
|
2449
|
+
dependencies, selected, next_block_name: next_block_name)
|
2444
2450
|
|
2445
2451
|
else
|
2446
2452
|
link_history_push_and_next(
|
@@ -2449,8 +2455,7 @@ module MarkdownExec
|
|
2449
2455
|
inherited_block_names: ((link_state&.inherited_block_names || []) + block_names).sort.uniq,
|
2450
2456
|
inherited_dependencies: (link_state&.inherited_dependencies || {}).merge(dependencies || {}), ### merge, not replace, key data
|
2451
2457
|
inherited_lines: HashDelegator.code_merge(link_state&.inherited_lines, code_lines),
|
2452
|
-
next_block_name:
|
2453
|
-
nil) || link_block_data[LinkKeys::BLOCK] || '',
|
2458
|
+
next_block_name: next_block_name,
|
2454
2459
|
next_document_filename: next_document_filename,
|
2455
2460
|
next_load_file: next_document_filename == @delegate_object[:filename] ? LoadFile::REUSE : LoadFile::LOAD
|
2456
2461
|
)
|
data/lib/markdown_exec.rb
CHANGED
@@ -275,7 +275,7 @@ module MarkdownExec
|
|
275
275
|
end
|
276
276
|
|
277
277
|
# return arguments before ARGV_SEP
|
278
|
-
# arguments after ARGV_SEP are passed to the
|
278
|
+
# arguments after ARGV_SEP are passed to the generated script
|
279
279
|
#
|
280
280
|
def arguments_for_mde(argv = ARGV)
|
281
281
|
case ind = argv.find_index(ARGV_SEP)
|
data/lib/menu.src.yml
CHANGED
@@ -233,8 +233,6 @@
|
|
233
233
|
:opt_name: exclude_expect_blocks
|
234
234
|
:procname: val_as_bool
|
235
235
|
|
236
|
-
# - :default: >
|
237
|
-
# osascript scripts/applescript/mde.applescript "%{batch_index}" "%{home}" " %{started_at} - %{document_filename} - %{block_name} " "%{script_filespec}" "%{output_filespec}"
|
238
236
|
- :default: >
|
239
237
|
osascript -e '
|
240
238
|
on run argv
|
@@ -252,7 +250,7 @@
|
|
252
250
|
write text "o=" & quoted form of output_filespec & ""
|
253
251
|
write text "cd " & quoted form of home & ""
|
254
252
|
write text "echo -ne \"\\033]; " & title & " \\007\""
|
255
|
-
write text "\"$s\" 2>&1 | tee -a \"$o\""
|
253
|
+
write text "\"$s\" %{rest} 2>&1 | tee -a \"$o\""
|
256
254
|
end tell
|
257
255
|
end tell
|
258
256
|
end tell
|
@@ -261,6 +259,9 @@
|
|
261
259
|
:env_var: MDE_EXECUTE_COMMAND_FORMAT
|
262
260
|
:opt_name: execute_command_format
|
263
261
|
:procname: val_as_str
|
262
|
+
# execute_command_format using a saved script
|
263
|
+
# - :default: >
|
264
|
+
# osascript scripts/applescript/mde.applescript "%{batch_index}" "%{home}" " %{started_at} - %{document_filename} - %{block_name} " "%{script_filespec}" "%{output_filespec}" %{rest}
|
264
265
|
|
265
266
|
- :default: "%T"
|
266
267
|
:description: Format for time in window title
|
@@ -1037,7 +1038,7 @@
|
|
1037
1038
|
|
1038
1039
|
- :arg_name: BOOL
|
1039
1040
|
:default: false
|
1040
|
-
:description:
|
1041
|
+
:description: Whether to save an executed script
|
1041
1042
|
:env_var: MDE_SAVE_EXECUTED_SCRIPT
|
1042
1043
|
:opt_name: save_executed_script
|
1043
1044
|
:procname: val_as_bool
|
data/lib/menu.yml
CHANGED
@@ -211,7 +211,7 @@
|
|
211
211
|
write text "o=" & quoted form of output_filespec & ""
|
212
212
|
write text "cd " & quoted form of home & ""
|
213
213
|
write text "echo -ne \"\\033]; " & title & " \\007\""
|
214
|
-
write text "\"$s\" 2>&1 | tee -a \"$o\""
|
214
|
+
write text "\"$s\" %{rest} 2>&1 | tee -a \"$o\""
|
215
215
|
end tell
|
216
216
|
end tell
|
217
217
|
end tell
|
@@ -884,7 +884,7 @@
|
|
884
884
|
:procname: val_as_int
|
885
885
|
- :arg_name: BOOL
|
886
886
|
:default: false
|
887
|
-
:description:
|
887
|
+
:description: Whether to save an executed script
|
888
888
|
:env_var: MDE_SAVE_EXECUTED_SCRIPT
|
889
889
|
:opt_name: save_executed_script
|
890
890
|
:procname: val_as_bool
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown_exec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.8.
|
4
|
+
version: 2.0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fareed Stevenson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06-
|
11
|
+
date: 2024-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clipboard
|