markdown_exec 1.8.8 → 1.8.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9fb4c6a799eb433c1df5b2a5b9969757bc7073bcd8ce410a341f8714dc4dd5dd
4
- data.tar.gz: 385a8fe67c4cb460b43ae1263c7643d819fe5c236e572e3d3a6c04f26fb64666
3
+ metadata.gz: a81d96c57727583a17c019bcb0a8097c6d97633a7b5ee2b33e2d9a7e56a4c081
4
+ data.tar.gz: 4c67c34577546161914e77be928867128e55d926c3419c2ab4c6cc521d051cae
5
5
  SHA512:
6
- metadata.gz: 658083cad39ed6e9e2caf0243b9aa2d33d9c8b881ed370938cee3f062ba4d9f2fa4f940de7d1dfe2066c0afe285c562f1caefef367d18eacfa4a9d295061f0fb
7
- data.tar.gz: 244c774edf797545ad63326caa39014b23cf3ed53622cdffcd2d37d37012be972ae3f538b619f6895c3ae72fcd80cafd0b9e9428bbd20788bb267307e5168a8d
6
+ metadata.gz: 6e7ffb35e3b7cf4aa9fa03095519d28aa088367a8b91cbcf440b143f732510a43401e78b435a0ea73f03a6754e55897fa9800b121f9f767d64715d4d79f019b3
7
+ data.tar.gz: a4f94c70dc8f58a7b6bf79a4baf063ef893173ccb26aa57f19a1ab485656ec469dcfa3f70555cb2bddddc55b8a3023576724d23dc30d2b16f444dbd732025b9f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.8.9] - 2024-01-20
4
+
5
+ ### Added
6
+
7
+ - Variables set in inherited lines for use in scripts.
8
+
9
+ - Link key `save` to write inherited lines to disk.
10
+
3
11
  ## [1.8.8] - 2024-01-15
4
12
 
5
13
  ### Added
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- markdown_exec (1.8.8)
4
+ markdown_exec (1.8.9)
5
5
  clipboard (~> 1.3.6)
6
6
  open3 (~> 0.1.1)
7
7
  optparse (~> 0.1.1)
@@ -13,7 +13,7 @@ __filedirs_all()
13
13
  }
14
14
 
15
15
  _mde_echo_version() {
16
- echo "1.8.8"
16
+ echo "1.8.9"
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-01-18 17:32:47 UTC"
181
+ # echo "Updated: 2024-01-20 19:29:56 UTC"
data/examples/linked.md CHANGED
@@ -1,62 +1,52 @@
1
- Demonstrate setting a variable interactively for use in generated scripts.
1
+ Demonstrate setting variable values interactively for use in generated scripts.
2
2
 
3
3
  ```opts :(document_options)
4
4
  pause_after_script_execution: false
5
5
  user_must_approve: false
6
6
  ```
7
7
 
8
- ::: Set VARIABLE to "A"
9
-
10
- ```link :set_to_A +(set_to_A)
11
- block: display_variable
8
+ ::: Set variable ALPHA in a Vars block
9
+ For each environment variable named in block,
10
+ append an inherited line that assigns the variable the specified value.
11
+ ```vars :set_ALPHA_to_1_via_vars_block
12
+ ALPHA: 1
12
13
  ```
13
14
 
14
- ```bash :(set_to_A)
15
- VARIABLE=A
15
+ ::: Set variable ALPHA in a Link block
16
+ For each environment variable in `vars`,
17
+ append an inherited line that assigns the variable the specified value.
18
+ Subsequently, run the `display_variable_ALPHA` block.
19
+ ```link :set_ALPHA_to_2_via_link_block_and_display
20
+ block: display_variable_ALPHA
21
+ vars:
22
+ ALPHA: 2
16
23
  ```
17
24
 
18
- ```link :set_to_A_eval +(set_to_A_eval)
19
- block: display_variable
20
- eval: true
25
+ Make the code in the required block `(bash_set_to_3)` into inherited lines.
26
+ Subsequently, run the `display_variable_ALPHA` block.
27
+ ```bash :(bash_set_to_3)
28
+ ALPHA=3
21
29
  ```
22
-
23
- ```bash :(set_to_A_eval)
24
- echo VARIABLE=A
30
+ ```link :set_ALPHA_to_3_via_required_block_and_display +(bash_set_to_3)
31
+ block: display_variable_ALPHA
25
32
  ```
26
33
 
27
- ::: Set VARIABLE to "B"
28
-
29
- ```link :set_to_B +(set_to_B)
30
- block: display_variable
31
- ```
32
-
33
- ```bash :(set_to_B)
34
- VARIABLE=B
35
- ```
36
-
37
- ```link :set_to_B_eval +(set_to_B_eval)
38
- block: display_variable
34
+ Evaluate the code in the required block `(bash_eval_set_to_4)` and
35
+ save (transformed) output into inherited lines.
36
+ Subsequently, run the `display_variable_ALPHA` block.
37
+ ```link :set_ALPHA_to_4_via_evaluated_required_block_and_display +(bash_eval_set_to_4)
39
38
  eval: true
39
+ next_block: display_variable_ALPHA
40
40
  ```
41
-
42
- ```bash :(set_to_B_eval)
43
- echo VARIABLE=B
41
+ ```bash :(bash_eval_set_to_4)
42
+ echo 'ALPHA="4"'
44
43
  ```
45
44
 
46
- ::: Display value of VARIABLE
47
-
48
- ```bash :display_variable
45
+ ::: Display value of ALPHA
46
+ ```bash :display_variable_ALPHA
49
47
  source bin/colorize_env_vars.sh
50
- echo The current value of environment variable VARIABLE is now:
51
- colorize_env_vars '' VARIABLE
52
- ```
53
-
54
- ```bash :(set_timestamp)
55
- echo 'yyyymmdd? (default: today UTC) '; read -r yyyymmdd; [[ -z $yyyymmdd ]] && yyyymmdd="$(date -u +%y%m%d)"
56
- echo "EC2_STACK_TS='$yyyymmdd'"
57
- ```
58
- ```link :request_input_and_inherit_output +(set_timestamp)
59
- exec: true
48
+ echo The current value of environment variable ALPHA is now:
49
+ colorize_env_vars '' ALPHA
60
50
  ```
61
51
 
62
52
  ::: Load file into inherited lines
@@ -69,3 +59,43 @@ Load, evaluate, and append output to inherited lines.
69
59
  load: examples/load2.sh
70
60
  eval: true
71
61
  ```
62
+
63
+ ::: Save and Load
64
+ Save inherited lines to a file.
65
+ ```link :save1
66
+ save: tmp/save1.sh
67
+ ```
68
+ Load inherited lines from a file.
69
+ Subsequently, run the `display_variables` block.
70
+ ```link :load_saved
71
+ load: tmp/save1.sh
72
+ block: display_variables
73
+ ```
74
+ Display variables ALPHA, var1, var2
75
+ ```bash :display_variables
76
+ source bin/colorize_env_vars.sh
77
+ colorize_env_vars '' ALPHA var1 var2
78
+ ```
79
+
80
+ Execute a script requiring input from the user.
81
+ Save the output setting TIMESTAMP into inherited lines.
82
+ Subsequently, run the `display_TIMESTAMP` block.
83
+ ```bash :(input_timestamp)
84
+ if [[ -z $TIMESTAMP ]]; then
85
+ default="$(date -u +%y%m%d)"
86
+ echo "yymmdd? (default: $default / today UTC) "
87
+ read -r TIMESTAMP
88
+ [[ -z $TIMESTAMP ]] && TIMESTAMP="$(date -u +%y%m%d)"
89
+ fi
90
+ ```
91
+ ```bash :(inherit_timestamp)
92
+ echo "TIMESTAMP=\"$TIMESTAMP\""
93
+ ```
94
+ ```link :set_timestamp +(input_timestamp) +(inherit_timestamp)
95
+ exec: true
96
+ block: display_TIMESTAMP
97
+ ```
98
+ ```bash :display_TIMESTAMP
99
+ source bin/colorize_env_vars.sh
100
+ colorize_env_vars '' TIMESTAMP
101
+ ```
data/lib/constants.rb CHANGED
@@ -17,11 +17,16 @@ IndexedLine = Struct.new(:index, :line) do
17
17
  end
18
18
  end
19
19
 
20
- class LinkDataKeys
20
+ class LinkKeys
21
+ Block = 'block'
21
22
  Eval = 'eval'
22
23
  Exec = 'exec'
24
+ File = 'file'
23
25
  Load = 'load'
26
+ NextBlock = 'next_block'
24
27
  Return = 'return'
28
+ Save = 'save'
29
+ Vars = 'vars'
25
30
  end
26
31
 
27
32
  class LoadFile
@@ -185,16 +185,20 @@ module HashDelegatorSelf
185
185
  fcb.oname = fcb.dname = fcb.title || ''
186
186
  end
187
187
 
188
+ def join_code_lines(lines)
189
+ ((lines || [])+ ['']).join("\n")
190
+ end
191
+
188
192
  def merge_lists(*args)
189
193
  # Filters out nil values, flattens the arrays, and ensures an empty list is returned if no valid lists are provided
190
194
  merged = args.compact.flatten
191
195
  merged.empty? ? [] : merged
192
196
  end
193
197
 
194
- def next_link_state(block_name_from_cli, was_using_cli, block_state)
198
+ def next_link_state(block_name_from_cli, was_using_cli, block_state, block_name: nil)
195
199
  # &bsp 'next_link_state', block_name_from_cli, was_using_cli, block_state
196
200
  # Set block_name based on block_name_from_cli
197
- block_name = block_name_from_cli ? @cli_block_name : nil
201
+ block_name = block_name_from_cli ? @cli_block_name : block_name
198
202
  # &bsp 'block_name:', block_name
199
203
 
200
204
  # Determine the state of breaker based on was_using_cli and the block type
@@ -600,8 +604,6 @@ module MarkdownExec
600
604
  # @param selected [Hash] The selected block.
601
605
  # @return [Array<String>] Required code blocks as an array of lines.
602
606
  def collect_required_code_lines(mdoc, selected, link_state = LinkState.new, block_source:)
603
- set_environment_variables_for_block(selected) if selected[:shell] == BlockType::VARS
604
-
605
607
  required = mdoc.collect_recursively_required_code(
606
608
  selected[:nickname] || selected[:oname],
607
609
  label_format_above: @delegate_object[:shell_code_label_format_above],
@@ -624,7 +626,9 @@ module MarkdownExec
624
626
  highlight: [@delegate_object[:block_name]])
625
627
  end
626
628
 
627
- HashDelegator.code_merge(link_state&.inherited_lines, required[:code])
629
+ code_lines = selected[:shell] == BlockType::VARS ? set_environment_variables_for_block(selected) : []
630
+
631
+ HashDelegator.code_merge(link_state&.inherited_lines, required[:code] + code_lines)
628
632
  end
629
633
 
630
634
  def command_execute(command, args: [])
@@ -926,6 +930,22 @@ module MarkdownExec
926
930
  @delegate_object.merge!(options_state.options)
927
931
  options_state.load_file_link_state
928
932
 
933
+ elsif selected[:shell] == BlockType::VARS
934
+ debounce_reset
935
+ block_names = []
936
+ code_lines = set_environment_variables_for_block(selected)
937
+ dependencies = {}
938
+ link_history_push_and_next(
939
+ curr_block_name: selected[:oname],
940
+ curr_document_filename: @delegate_object[:filename],
941
+ inherited_block_names: ((link_state&.inherited_block_names || []) + block_names).sort.uniq,
942
+ inherited_dependencies: (link_state&.inherited_dependencies || {}).merge(dependencies || {}), ### merge, not replace, key data
943
+ inherited_lines: HashDelegator.code_merge(link_state&.inherited_lines, code_lines),
944
+ next_block_name: '',
945
+ next_document_filename: @delegate_object[:filename],
946
+ next_load_file: LoadFile::Reuse
947
+ )
948
+
929
949
  elsif debounce_allows
930
950
  compile_execute_and_trigger_reuse(mdoc, selected, link_state,
931
951
  block_source: block_source)
@@ -1089,7 +1109,7 @@ module MarkdownExec
1089
1109
  def link_block_data_eval(link_state, code_lines, selected, link_block_data)
1090
1110
  all_code = HashDelegator.code_merge(link_state&.inherited_lines, code_lines)
1091
1111
 
1092
- if link_block_data.fetch(LinkDataKeys::Exec, false)
1112
+ if link_block_data.fetch(LinkKeys::Exec, false)
1093
1113
  @run_state.files = Hash.new([])
1094
1114
  output_lines = []
1095
1115
 
@@ -1338,7 +1358,7 @@ module MarkdownExec
1338
1358
  inherited_block_names: ((link_state&.inherited_block_names || []) + block_names).sort.uniq,
1339
1359
  inherited_dependencies: (link_state&.inherited_dependencies || {}).merge(dependencies || {}), ### merge, not replace, key data
1340
1360
  inherited_lines: HashDelegator.code_merge(link_state&.inherited_lines, code_lines),
1341
- next_block_name: '', # not link_block_data['block'] || ''
1361
+ next_block_name: '', # not link_block_data[LinkKeys::Block] || ''
1342
1362
  next_document_filename: @delegate_object[:filename], # not next_document_filename
1343
1363
  next_load_file: LoadFile::Reuse # not next_document_filename == @delegate_object[:filename] ? LoadFile::Reuse : LoadFile::Load
1344
1364
  )
@@ -1539,13 +1559,6 @@ module MarkdownExec
1539
1559
  link_state = LinkState.new)
1540
1560
  link_block_data = HashDelegator.parse_yaml_data_from_body(link_block_body)
1541
1561
 
1542
- # load key and values from link block into current environment
1543
- #
1544
- (link_block_data['vars'] || []).each do |(key, value)|
1545
- ENV[key] = value.to_s
1546
- ### add to inherited_lines
1547
- end
1548
-
1549
1562
  ## collect blocks specified by block
1550
1563
  #
1551
1564
  if mdoc
@@ -1563,22 +1576,40 @@ module MarkdownExec
1563
1576
  code_lines = []
1564
1577
  dependencies = {}
1565
1578
  end
1566
- next_document_filename = link_block_data['file'] || @delegate_object[:filename]
1579
+ next_document_filename = link_block_data[LinkKeys::File] || @delegate_object[:filename]
1567
1580
 
1568
- ## append blocks loaded per LinkDataKeys::Load
1581
+ # load key and values from link block into current environment
1569
1582
  #
1570
- if (load_filespec = link_block_data.fetch(LinkDataKeys::Load, '')).present?
1583
+ if link_block_data[LinkKeys::Vars]
1584
+ code_lines.push "# #{selected[:oname]}"
1585
+ (link_block_data[LinkKeys::Vars] || []).each do |(key, value)|
1586
+ ENV[key] = value.to_s
1587
+ require 'shellwords'
1588
+ code_lines.push "#{key}=\"#{Shellwords.escape(value)}\""
1589
+ end
1590
+ end
1591
+
1592
+ ## append blocks loaded, apply LinkKeys::Eval
1593
+ #
1594
+ if (load_filespec = link_block_data.fetch(LinkKeys::Load, '')).present?
1571
1595
  code_lines += File.readlines(load_filespec, chomp: true)
1572
1596
  end
1573
1597
 
1574
1598
  # if an eval link block, evaluate code_lines and return its standard output
1575
1599
  #
1576
- if link_block_data.fetch(LinkDataKeys::Eval,
1577
- false) || link_block_data.fetch(LinkDataKeys::Exec, false)
1600
+ if link_block_data.fetch(LinkKeys::Eval,
1601
+ false) || link_block_data.fetch(LinkKeys::Exec, false)
1578
1602
  code_lines = link_block_data_eval(link_state, code_lines, selected, link_block_data)
1579
1603
  end
1580
1604
 
1581
- if link_block_data[LinkDataKeys::Return]
1605
+ ## write variables
1606
+ #
1607
+ if (save_filespec = link_block_data.fetch(LinkKeys::Save, '')).present?
1608
+ File.write(save_filespec, HashDelegator.join_code_lines(link_state&.inherited_lines))
1609
+ next_document_filename = @delegate_object[:filename]
1610
+ end
1611
+
1612
+ if link_block_data[LinkKeys::Return]
1582
1613
  pop_add_current_code_to_head_and_trigger_load(link_state, block_names, code_lines,
1583
1614
  dependencies, selected)
1584
1615
 
@@ -1589,7 +1620,7 @@ module MarkdownExec
1589
1620
  inherited_block_names: ((link_state&.inherited_block_names || []) + block_names).sort.uniq,
1590
1621
  inherited_dependencies: (link_state&.inherited_dependencies || {}).merge(dependencies || {}), ### merge, not replace, key data
1591
1622
  inherited_lines: HashDelegator.code_merge(link_state&.inherited_lines, code_lines),
1592
- next_block_name: link_block_data['block'] || '',
1623
+ next_block_name: link_block_data.fetch(LinkKeys::NextBlock, nil) || link_block_data[LinkKeys::Block] || '',
1593
1624
  next_document_filename: next_document_filename,
1594
1625
  next_load_file: next_document_filename == @delegate_object[:filename] ? LoadFile::Reuse : LoadFile::Load
1595
1626
  )
@@ -1668,8 +1699,13 @@ module MarkdownExec
1668
1699
  break
1669
1700
  end
1670
1701
 
1702
+ ## order of block name processing
1703
+ # from link block
1704
+ # from cli
1705
+ # from user
1706
+ #
1671
1707
  link_state.block_name, @run_state.block_name_from_cli, cli_break = \
1672
- HashDelegator.next_link_state(!shift_cli_argument, now_using_cli, block_state)
1708
+ HashDelegator.next_link_state(!link_state.block_name && !shift_cli_argument, now_using_cli, block_state, block_name: link_state.block_name)
1673
1709
 
1674
1710
  if !block_state.block[:block_name_from_ui] && cli_break
1675
1711
  # &bsp '!block_name_from_ui + cli_break -> break'
@@ -1814,14 +1850,20 @@ module MarkdownExec
1814
1850
  end
1815
1851
 
1816
1852
  def set_environment_variables_for_block(selected)
1853
+ code_lines = []
1817
1854
  YAML.load(selected[:body].join("\n"))&.each do |key, value|
1818
1855
  ENV[key] = value.to_s
1856
+
1857
+ require 'shellwords'
1858
+ code_lines.push "#{key}=\"#{Shellwords.escape(value)}\""
1859
+
1819
1860
  next unless @delegate_object[:menu_vars_set_format].present?
1820
1861
 
1821
1862
  formatted_string = format(@delegate_object[:menu_vars_set_format],
1822
1863
  { key: key, value: value })
1823
1864
  print string_send_color(formatted_string, :menu_vars_set_color)
1824
1865
  end
1866
+ code_lines
1825
1867
  end
1826
1868
 
1827
1869
  def should_add_back_option?
@@ -2111,7 +2153,7 @@ module MarkdownExec
2111
2153
  LinkState.new(block_name: 'sample_block',
2112
2154
  document_filename: 'sample_file',
2113
2155
  inherited_dependencies: {},
2114
- inherited_lines: []))
2156
+ inherited_lines: ['# ', 'KEY="VALUE"']))
2115
2157
  assert_equal expected_result,
2116
2158
  @hd.push_link_history_and_trigger_load(body, nil, FCB.new(block_name: 'sample_block',
2117
2159
  filename: 'sample_file'))
@@ -2282,7 +2324,7 @@ module MarkdownExec
2282
2324
  @mdoc.stubs(:collect_recursively_required_code).returns({ code: ['code line'] })
2283
2325
  result = @hd.collect_required_code_lines(@mdoc, @selected, block_source: {})
2284
2326
 
2285
- assert_equal ['code line'], result
2327
+ assert_equal ['code line', 'key="value"'], result
2286
2328
  end
2287
2329
  end
2288
2330
 
@@ -7,5 +7,5 @@ module MarkdownExec
7
7
  BIN_NAME = 'mde'
8
8
  GEM_NAME = 'markdown_exec'
9
9
  TAP_DEBUG = 'MDE_DEBUG'
10
- VERSION = '1.8.8'
10
+ VERSION = '1.8.9'
11
11
  end
data/lib/menu.src.yml CHANGED
@@ -211,26 +211,11 @@
211
211
  tell the first window
212
212
  set bounds to {xoff, yoff, xoff + winWidth, yoff + winHeight}
213
213
  tell the current session
214
- write text "alias cat_script=\"cat -n \\\"%{script_filespec}\\\"\""
215
- write text "alias less_script=\"less \\\"%{script_filespec}\\\"\""
216
- write text "alias run_script=\"%{script_filespec}\""
217
- write text "alias vim_script=\"vim \\\"%{script_filespec}\\\"\""
218
- delay 1
219
-
220
- write text "alias cat_output=\"cat -n \\\"%{output_filespec}\\\"\""
221
- write text "alias grep_output=\"read -p Pattern: pattern && grep \\\"\\$pattern\\\" \\\"%{output_filespec}\\\"\""
222
- write text "alias less_output=\"less \\\"%{output_filespec}\\\"\""
223
- delay 1
224
-
225
- write text "alias menu=\"select cmd in cat_script less_script run_script vim_script cat_output grep_output less_output exit; do eval \\\"\\$cmd\\\"; done\""
226
- delay 1
227
-
214
+ write text "# %{script_filespec}"
215
+ write text "# %{output_filespec}"
228
216
  write text "echo -ne \"\\033]; %{started_at} - %{document_filename} - %{block_name} \\007\""
229
217
  write text "cd \"%{home}\""
230
218
  write text "\"%{script_filename}\" | tee \"%{output_filespec}\""
231
- delay 2
232
-
233
- write text "menu"
234
219
  end tell
235
220
  end tell
236
221
  end tell'
@@ -737,7 +722,7 @@
737
722
  :env_var: MDE_OUTPUT_ASSIGNMENT_FORMAT
738
723
  :opt_name: output_assignment_format
739
724
  :procname: val_as_str
740
- - :default: "^ *(\\w+=.*?) *$"
725
+ - :default: "^ *(?<line>\\w+=.*?) *$"
741
726
  :description: Pattern for assignments from output
742
727
  :env_var: MDE_OUTPUT_ASSIGNMENT_MATCH
743
728
  :opt_name: output_assignment_match
data/lib/menu.yml CHANGED
@@ -1,4 +1,4 @@
1
- # MDE - Markdown Executor (1.8.8)
1
+ # MDE - Markdown Executor (1.8.9)
2
2
  ---
3
3
  - :description: Show current configuration values
4
4
  :procname: show_config
@@ -173,21 +173,12 @@
173
173
  yoff to xoff mod (screenHeight - winHeight)\n \n create window with
174
174
  default profile\n tell the first window\n set bounds to {xoff,
175
175
  yoff, xoff + winWidth, yoff + winHeight}\n tell the current session\n
176
- \ write text \"alias cat_script=\\\"cat -n \\\\\\\"%{script_filespec}\\\\\\\"\\\"\"\n
177
- \ write text \"alias less_script=\\\"less \\\\\\\"%{script_filespec}\\\\\\\"\\\"\"\n
178
- \ write text \"alias run_script=\\\"%{script_filespec}\\\"\"\n write
179
- text \"alias vim_script=\\\"vim \\\\\\\"%{script_filespec}\\\\\\\"\\\"\"\n delay
180
- 1\n\n write text \"alias cat_output=\\\"cat -n \\\\\\\"%{output_filespec}\\\\\\\"\\\"\"\n
181
- \ write text \"alias grep_output=\\\"read -p Pattern: pattern &&
182
- grep \\\\\\\"\\\\$pattern\\\\\\\" \\\\\\\"%{output_filespec}\\\\\\\"\\\"\"\n write
183
- text \"alias less_output=\\\"less \\\\\\\"%{output_filespec}\\\\\\\"\\\"\"\n delay
184
- 1\n\n write text \"alias menu=\\\"select cmd in cat_script less_script
185
- run_script vim_script cat_output grep_output less_output exit; do eval \\\\\\\"\\\\$cmd\\\\\\\";
186
- done\\\"\"\n delay 1\n\n write text \"echo -ne \\\"\\\\033];
176
+ \ write text \"# %{script_filespec}\"\n write text
177
+ \"# %{output_filespec}\"\n write text \"echo -ne \\\"\\\\033];
187
178
  %{started_at} - %{document_filename} - %{block_name} \\\\007\\\"\"\n write
188
179
  text \"cd \\\"%{home}\\\"\"\n write text \"\\\"%{script_filename}\\\"
189
- | tee \\\"%{output_filespec}\\\"\"\n delay 2\n\n write
190
- text \"menu\"\n end tell\n end tell\n end tell'\n"
180
+ | tee \\\"%{output_filespec}\\\"\"\n end tell\n end tell\n end
181
+ tell'\n"
191
182
  :description: execute_command_format
192
183
  :env_var: MDE_EXECUTE_COMMAND_FORMAT
193
184
  :opt_name: execute_command_format
@@ -611,7 +602,7 @@
611
602
  :env_var: MDE_OUTPUT_ASSIGNMENT_FORMAT
612
603
  :opt_name: output_assignment_format
613
604
  :procname: val_as_str
614
- - :default: "^ *(\\w+=.*?) *$"
605
+ - :default: "^ *(?<line>\\w+=.*?) *$"
615
606
  :description: Pattern for assignments from output
616
607
  :env_var: MDE_OUTPUT_ASSIGNMENT_MATCH
617
608
  :opt_name: output_assignment_match
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: 1.8.8
4
+ version: 1.8.9
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-01-18 00:00:00.000000000 Z
11
+ date: 2024-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clipboard