markdown_exec 1.8.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -1
- data/CHANGELOG.md +12 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +2 -8
- data/bin/tab_completion.sh +11 -3
- data/examples/colors.md +41 -19
- data/examples/document_options.md +8 -0
- data/examples/duplicate_block.md +5 -8
- data/examples/import0.md +3 -5
- data/examples/import1.md +1 -1
- data/examples/include.md +16 -10
- data/examples/indent.md +2 -0
- data/examples/index.md +68 -0
- data/examples/linked.md +31 -0
- data/examples/llm.md +54 -0
- data/lib/find_files.rb +1 -2
- data/lib/hash_delegator.rb +483 -207
- data/lib/input_sequencer.rb +229 -0
- data/lib/link_history.rb +11 -5
- data/lib/markdown_exec/version.rb +1 -1
- data/lib/markdown_exec.rb +4 -6
- data/lib/mdoc.rb +7 -7
- data/lib/menu.src.yml +59 -9
- data/lib/menu.yml +52 -10
- metadata +6 -3
- data/examples/infile_config.md +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bab8478298e4304b710d35a6c5c0d931635678d038a4a16f4714f9347f38aa6
|
4
|
+
data.tar.gz: 2a57f5bc25681718a5c23ec313a8c8767209d1422431348e310d311524e5d66c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6c4fcb0963a71d89968ff195bb963e31d4f887a7f97d524aeea29bcad5e359e698b89928d00f85cf6ad7cd99d768f2a7152a086fb32abf91e3477751b0979ba
|
7
|
+
data.tar.gz: 85631dcaa941169ae08527a2d2f185a82b5a296337aa78e2f50994f7cf2ecaa69966d4a647cafc7c772abd97f0ddc2fc7b2ff0ef298e30f6ff2f46d28eb12d12
|
data/.rubocop.yml
CHANGED
@@ -13,7 +13,8 @@ Layout/LeadingCommentSpace:
|
|
13
13
|
Layout/LineContinuationLeadingSpace:
|
14
14
|
Enabled: false
|
15
15
|
|
16
|
-
Layout/LineLength:
|
16
|
+
Layout/LineLength: # 2024-01-21 temp disable
|
17
|
+
Enabled: false
|
17
18
|
Max: 96
|
18
19
|
|
19
20
|
Lint/Debugger:
|
@@ -58,6 +59,9 @@ Security/YAMLLoad:
|
|
58
59
|
Style/CommentedKeyword:
|
59
60
|
Enabled: false
|
60
61
|
|
62
|
+
Style/Documentation: # 2024-01-21 temp disable
|
63
|
+
Enabled: false
|
64
|
+
|
61
65
|
Style/DoubleNegation:
|
62
66
|
Enabled: false
|
63
67
|
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [2.0.0] - 2024-02-07
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- Process format and glob to load, save script code.
|
8
|
+
|
9
|
+
- Provide ENV and batch variables to formatting function.
|
10
|
+
|
11
|
+
- Find files matching glob and present for user selection.
|
12
|
+
|
13
|
+
- Allow for entry of new file name when saving.
|
14
|
+
|
3
15
|
## [1.8.9] - 2024-01-20
|
4
16
|
|
5
17
|
### Added
|
data/Gemfile
CHANGED
@@ -9,7 +9,7 @@ gemspec
|
|
9
9
|
gem 'clipboard'
|
10
10
|
gem 'debug'
|
11
11
|
gem 'erb'
|
12
|
-
gem 'httparty' # 2024-01-01 for ChatGPI API
|
12
|
+
# gem 'httparty' # 2024-01-01 for ChatGPI API
|
13
13
|
gem 'irb', '>= 1.8.0'
|
14
14
|
gem 'mocha', require: false
|
15
15
|
gem 'minitest', require: false
|
@@ -24,5 +24,6 @@ gem 'rubocop-minitest', require: false
|
|
24
24
|
gem 'rubocop-rake', require: false
|
25
25
|
gem 'rubocop-rspec', require: false
|
26
26
|
gem 'shellwords'
|
27
|
-
gem '
|
27
|
+
# gem 'tty-file'
|
28
|
+
gem 'uri', '0.12.2'
|
28
29
|
gem 'yaml', '~> 0.2.1'
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
markdown_exec (
|
4
|
+
markdown_exec (2.0.0)
|
5
5
|
clipboard (~> 1.3.6)
|
6
6
|
open3 (~> 0.1.1)
|
7
7
|
optparse (~> 0.1.1)
|
@@ -47,9 +47,6 @@ GEM
|
|
47
47
|
erb (4.0.3)
|
48
48
|
cgi (>= 0.3.3)
|
49
49
|
erubi (1.12.0)
|
50
|
-
httparty (0.21.0)
|
51
|
-
mini_mime (>= 1.0.0)
|
52
|
-
multi_xml (>= 0.5.2)
|
53
50
|
i18n (1.14.1)
|
54
51
|
concurrent-ruby (~> 1.0)
|
55
52
|
io-console (0.7.1)
|
@@ -63,11 +60,9 @@ GEM
|
|
63
60
|
crass (~> 1.0.2)
|
64
61
|
nokogiri (>= 1.12.0)
|
65
62
|
method_source (1.0.0)
|
66
|
-
mini_mime (1.1.5)
|
67
63
|
minitest (5.20.0)
|
68
64
|
mocha (2.1.0)
|
69
65
|
ruby2_keywords (>= 0.0.5)
|
70
|
-
multi_xml (0.6.0)
|
71
66
|
nokogiri (1.15.4-arm64-darwin)
|
72
67
|
racc (~> 1.4)
|
73
68
|
open3 (0.1.2)
|
@@ -187,7 +182,6 @@ DEPENDENCIES
|
|
187
182
|
clipboard
|
188
183
|
debug
|
189
184
|
erb
|
190
|
-
httparty
|
191
185
|
irb (>= 1.8.0)
|
192
186
|
markdown_exec!
|
193
187
|
minitest
|
@@ -203,7 +197,7 @@ DEPENDENCIES
|
|
203
197
|
rubocop-rake
|
204
198
|
rubocop-rspec
|
205
199
|
shellwords
|
206
|
-
uri
|
200
|
+
uri (= 0.12.2)
|
207
201
|
yaml (~> 0.2.1)
|
208
202
|
|
209
203
|
BUNDLED WITH
|
data/bin/tab_completion.sh
CHANGED
@@ -13,7 +13,7 @@ __filedirs_all()
|
|
13
13
|
}
|
14
14
|
|
15
15
|
_mde_echo_version() {
|
16
|
-
echo "
|
16
|
+
echo "2.0.0"
|
17
17
|
}
|
18
18
|
|
19
19
|
_mde() {
|
@@ -40,6 +40,10 @@ _mde() {
|
|
40
40
|
|
41
41
|
--dump-blocks-in-file) COMPREPLY="0"; return 0 ;;
|
42
42
|
|
43
|
+
--dump-dump-inherited-block_names) COMPREPLY="0"; return 0 ;;
|
44
|
+
|
45
|
+
--dump-dump-inherited-dependencies) COMPREPLY="0"; return 0 ;;
|
46
|
+
|
43
47
|
--dump-dump-inherited-lines) COMPREPLY="0"; return 0 ;;
|
44
48
|
|
45
49
|
--dump-menu-blocks) COMPREPLY="0"; return 0 ;;
|
@@ -94,7 +98,7 @@ _mde() {
|
|
94
98
|
# present matching option names
|
95
99
|
#
|
96
100
|
if [[ ${cur} == -* ]] ; then
|
97
|
-
opts=("--block-name" "--config" "--debug" "--dump-dump-delegate-object" "--dump-blocks-in-file" "--dump-dump-inherited-lines" "--dump-menu-blocks" "--dump-selected-block" "--exit" "--filename" "--find" "--find-path" "--help" "--how" "--list-blocks" "--list-count" "--list-default-env" "--list-default-yaml" "--list-docs" "--list-recent-output" "--list-recent-scripts" "--output-execution-summary" "--output-script" "--output-stdout" "--path" "--pwd" "--run-last-script" "--save-executed-script" "--save-execution-output" "--saved-script-folder" "--saved-stdout-folder" "--select-recent-output" "--select-recent-script" "--tab-completions" "--user-must-approve" "--version" "--display-level")
|
101
|
+
opts=("--block-name" "--config" "--debug" "--dump-dump-delegate-object" "--dump-blocks-in-file" "--dump-dump-inherited-block_names" "--dump-dump-inherited-dependencies" "--dump-dump-inherited-lines" "--dump-menu-blocks" "--dump-selected-block" "--exit" "--filename" "--find" "--find-path" "--help" "--how" "--list-blocks" "--list-count" "--list-default-env" "--list-default-yaml" "--list-docs" "--list-recent-output" "--list-recent-scripts" "--output-execution-summary" "--output-script" "--output-stdout" "--path" "--pwd" "--run-last-script" "--save-executed-script" "--save-execution-output" "--saved-script-folder" "--saved-stdout-folder" "--select-recent-output" "--select-recent-script" "--tab-completions" "--user-must-approve" "--version" "--display-level")
|
98
102
|
COMPREPLY=( $(compgen -W "$(printf "'%s' " "${opts[@]}")" -- "${cur}") )
|
99
103
|
|
100
104
|
return 0
|
@@ -121,6 +125,10 @@ _mde() {
|
|
121
125
|
|
122
126
|
--dump-blocks-in-file) COMPREPLY=".BOOL."; return 0 ;;
|
123
127
|
|
128
|
+
--dump-dump-inherited-block_names) COMPREPLY=".BOOL."; return 0 ;;
|
129
|
+
|
130
|
+
--dump-dump-inherited-dependencies) COMPREPLY=".BOOL."; return 0 ;;
|
131
|
+
|
124
132
|
--dump-dump-inherited-lines) COMPREPLY=".BOOL."; return 0 ;;
|
125
133
|
|
126
134
|
--dump-menu-blocks) COMPREPLY=".BOOL."; return 0 ;;
|
@@ -178,4 +186,4 @@ _mde() {
|
|
178
186
|
|
179
187
|
complete -o filenames -o nospace -F _mde mde
|
180
188
|
# _mde_echo_version
|
181
|
-
# echo "Updated: 2024-
|
189
|
+
# echo "Updated: 2024-02-08 17:51:16 UTC"
|
data/examples/colors.md
CHANGED
@@ -4,23 +4,45 @@
|
|
4
4
|
|
5
5
|
<https://en.wikipedia.org/wiki/Complementary_colors#/media/File:RGB_color_wheel.svg>
|
6
6
|
|
7
|
-
ff0000 red - exception text
|
8
|
-
ff7f00 orange - warning text
|
9
|
-
ffff00 yellow - notification text
|
10
|
-
7fff00 chartreuse green - output frame
|
11
|
-
00ff00 green - prompt
|
12
|
-
00ff7f spring green - input frame
|
13
|
-
00ffff cyan - menu text
|
14
|
-
007fff azure - menu frame
|
15
|
-
0000ff blue
|
16
|
-
7f00ff violet - opts frame
|
17
|
-
ff00ff magenta - opts text
|
18
|
-
ff007f rose - exception frame
|
7
|
+
/ ff0000 red - exception text
|
8
|
+
/ ff7f00 orange - warning text
|
9
|
+
/ ffff00 yellow - notification text
|
10
|
+
/ 7fff00 chartreuse green - output frame
|
11
|
+
/ 00ff00 green - prompt
|
12
|
+
/ 00ff7f spring green - input frame
|
13
|
+
/ 00ffff cyan - menu text
|
14
|
+
/ 007fff azure - menu frame
|
15
|
+
/ 0000ff blue
|
16
|
+
/ 7f00ff violet - opts frame
|
17
|
+
/ ff00ff magenta - opts text
|
18
|
+
/ ff007f rose - exception frame
|
19
19
|
|
20
20
|
```opts :(document_options)
|
21
21
|
```
|
22
22
|
|
23
23
|
```opts :load_colors
|
24
|
+
exception_color_detail: fg_rgbh_1f_00_7f
|
25
|
+
exception_color_name: fg_rgbh_1f_00_00
|
26
|
+
execution_report_preview_frame_color: fg_rgbh_7f_1f_00
|
27
|
+
menu_bash_color: fg_rgbh_00_c0_c0
|
28
|
+
menu_chrome_color: fg_rgbh_40_c0_c0
|
29
|
+
menu_divider_color: fg_rgbh_80_d0_c0
|
30
|
+
menu_link_color: fg_rgbh_e0_e0_20
|
31
|
+
menu_note_color: fg_rgbh_b0_b0_b0
|
32
|
+
menu_opts_color: fg_rgbh_1f_00_1f
|
33
|
+
menu_opts_set_color: fg_rgbh_7f_00_1f
|
34
|
+
menu_task_color: fg_rgbh_1f_1f_1f
|
35
|
+
menu_vars_color: fg_rgbh_1f_a0_1f
|
36
|
+
menu_vars_set_color: fg_rgbh_00_1f_1f
|
37
|
+
output_execution_label_name_color: fg_rgbh_00_1f_00
|
38
|
+
output_execution_label_value_color: fg_rgbh_00_1f_00
|
39
|
+
prompt_color_after_script_execution: fg_rgbh_00_1f_00
|
40
|
+
script_execution_frame_color: fg_rgbh_00_1f_7f
|
41
|
+
script_preview_frame_color: fg_rgbh_7f_1f_00
|
42
|
+
warning_color: fg_rgbh_1f_7f_00
|
43
|
+
```
|
44
|
+
|
45
|
+
```opts :load_colors2
|
24
46
|
exception_color_detail: fg_rgbh_ff_00_7f
|
25
47
|
exception_color_name: fg_rgbh_ff_00_00
|
26
48
|
execution_report_preview_frame_color: fg_rgbh_7f_ff_00
|
@@ -57,10 +79,10 @@ warning_color: fg_rgbh_ff_7f_00
|
|
57
79
|
```
|
58
80
|
[ ] Task1
|
59
81
|
|
60
|
-
blue; fg_rgbh_00_00_FF
|
61
|
-
green; fg_rgbh_00_FF_00
|
62
|
-
indigo; fg_rgbh_4B_00_82
|
63
|
-
orange; fg_rgbh_FF_7F_00
|
64
|
-
red; fg_rgbh_FF_00_00
|
65
|
-
violet; fg_rgbh_94_00_D3
|
66
|
-
yellow; fg_rgbh_FF_FF_00
|
82
|
+
/ blue; fg_rgbh_00_00_FF
|
83
|
+
/ green; fg_rgbh_00_FF_00
|
84
|
+
/ indigo; fg_rgbh_4B_00_82
|
85
|
+
/ orange; fg_rgbh_FF_7F_00
|
86
|
+
/ red; fg_rgbh_FF_00_00
|
87
|
+
/ violet; fg_rgbh_94_00_D3
|
88
|
+
/ yellow; fg_rgbh_FF_FF_00
|
@@ -0,0 +1,8 @@
|
|
1
|
+
This document demonstrates the automatic loading of options in a block with a reserved name.
|
2
|
+
|
3
|
+
```opts :(document_options)
|
4
|
+
menu_divider_format: "=> %{line} == %{line} <="
|
5
|
+
```
|
6
|
+
|
7
|
+
The divider below is named "Divider #1". Notice the "(document_options)" block sets the "menu_divider_format" option to duplicate the divider name when it is displayed.
|
8
|
+
::: Divider #1
|
data/examples/duplicate_block.md
CHANGED
@@ -1,10 +1,7 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
Executing either of these blocks outputs the same two lines.
|
2
|
+
```bash :duplicate_name
|
3
|
+
echo from duplicate name, block 1
|
3
4
|
```
|
4
|
-
```bash :
|
5
|
-
|
5
|
+
```bash :duplicate_name
|
6
|
+
echo from duplicate name, block 2
|
6
7
|
```
|
7
|
-
```bash :a
|
8
|
-
03
|
9
|
-
```
|
10
|
-
|
data/examples/import0.md
CHANGED
@@ -1,10 +1,8 @@
|
|
1
|
-
This is Page 0
|
1
|
+
This is Page 0. It serves to demonstrate how options control the display of imported blocks and notes.
|
2
2
|
|
3
|
-
|
3
|
+
::: "import1.md" is imported here.
|
4
4
|
|
5
|
-
|
6
|
-
user_must_approve: true
|
7
|
-
```
|
5
|
+
@import import1.md
|
8
6
|
|
9
7
|
::: Page 0 code blocks
|
10
8
|
|
data/examples/import1.md
CHANGED
data/examples/include.md
CHANGED
@@ -1,19 +1,25 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
This document demonstrates blocks requiring other blocks.
|
2
|
+
|
3
|
+
Block "(Winter)" is hidden.
|
4
|
+
```bash :(Winter)
|
5
|
+
echo It is now Winter
|
3
6
|
```
|
4
7
|
|
5
|
-
|
6
|
-
|
8
|
+
Block "Spring" is visible. It requires "(Winter)".
|
9
|
+
```bash :Spring +(Winter)
|
10
|
+
echo It is now Spring
|
7
11
|
```
|
8
12
|
|
9
|
-
|
10
|
-
|
13
|
+
Block "(Summer)" is hidden. It requires "(Winter)" and "Spring"
|
14
|
+
```bash :(Summer) +Spring +(Winter)
|
15
|
+
echo It is now Summer
|
11
16
|
```
|
12
17
|
|
13
|
-
|
14
|
-
|
18
|
+
Block "Fall" is visible. It requires "(Summer)" which itself requires the rest.
|
19
|
+
```bash :Fall +(Summer)
|
20
|
+
echo It is now Fall
|
15
21
|
```
|
16
22
|
|
17
|
-
|
18
|
-
|
23
|
+
Block "Sunsear" is visible. It requires "Frostfall" which does not exist and triggers an unmet dependency error.
|
24
|
+
```bash :Sunsear +Frostfall
|
19
25
|
```
|
data/examples/indent.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
This document demonstrates content is indented to match the source.
|
2
|
+
|
1
3
|
This is a concise guide for using Bash commands to find and list recent files in a Linux system. The commands are safe to use and can help you quickly locate recently modified or accessed files.
|
2
4
|
|
3
5
|
1. **List Recently Modified Files**:
|
data/examples/index.md
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
v2024-02-06
|
2
|
+
|
3
|
+
```link
|
4
|
+
file: examples/colors.md
|
5
|
+
```
|
6
|
+
```link
|
7
|
+
file: examples/document_options.md
|
8
|
+
```
|
9
|
+
```link
|
10
|
+
file: examples/duplicate_block.md
|
11
|
+
```
|
12
|
+
```link
|
13
|
+
file: examples/import0.md
|
14
|
+
```
|
15
|
+
```link
|
16
|
+
file: examples/import1.md
|
17
|
+
```
|
18
|
+
```link
|
19
|
+
file: examples/include.md
|
20
|
+
```
|
21
|
+
```link
|
22
|
+
file: examples/indent.md
|
23
|
+
```
|
24
|
+
```link
|
25
|
+
file: examples/linked.md
|
26
|
+
```
|
27
|
+
```link
|
28
|
+
file: examples/linked1.md
|
29
|
+
```
|
30
|
+
```link
|
31
|
+
file: examples/linked2.md
|
32
|
+
```
|
33
|
+
```link
|
34
|
+
file: examples/linked3.md
|
35
|
+
```
|
36
|
+
```link
|
37
|
+
file: examples/llm.md
|
38
|
+
```
|
39
|
+
```link
|
40
|
+
file: examples/load1.sh
|
41
|
+
```
|
42
|
+
```link
|
43
|
+
file: examples/load2.sh
|
44
|
+
```
|
45
|
+
```link
|
46
|
+
file: examples/nickname.md
|
47
|
+
```
|
48
|
+
```link
|
49
|
+
file: examples/opts.md
|
50
|
+
```
|
51
|
+
```link
|
52
|
+
file: examples/pass-through.md
|
53
|
+
```
|
54
|
+
```link
|
55
|
+
file: examples/plant.md
|
56
|
+
```
|
57
|
+
```link
|
58
|
+
file: examples/port.md
|
59
|
+
```
|
60
|
+
```link
|
61
|
+
file: examples/title.md
|
62
|
+
```
|
63
|
+
```link
|
64
|
+
file: examples/vars.md
|
65
|
+
```
|
66
|
+
```link
|
67
|
+
file: examples/wrap.md
|
68
|
+
```
|
data/examples/linked.md
CHANGED
@@ -5,6 +5,11 @@ pause_after_script_execution: false
|
|
5
5
|
user_must_approve: false
|
6
6
|
```
|
7
7
|
|
8
|
+
```link :link_with_vars_with_spaces
|
9
|
+
vars:
|
10
|
+
test: "1 2 3"
|
11
|
+
```
|
12
|
+
|
8
13
|
::: Set variable ALPHA in a Vars block
|
9
14
|
For each environment variable named in block,
|
10
15
|
append an inherited line that assigns the variable the specified value.
|
@@ -99,3 +104,29 @@ block: display_TIMESTAMP
|
|
99
104
|
source bin/colorize_env_vars.sh
|
100
105
|
colorize_env_vars '' TIMESTAMP
|
101
106
|
```
|
107
|
+
|
108
|
+
::: Load file matching glob pattern into inherited lines
|
109
|
+
Load (do not evaluate) and append to inherited lines.
|
110
|
+
```link :load_glob_load1*
|
111
|
+
load: examples/load1*.sh
|
112
|
+
```
|
113
|
+
```link :load_glob_load*
|
114
|
+
load: examples/load*.sh
|
115
|
+
```
|
116
|
+
```link :load_glob_fail
|
117
|
+
load: examples/fail*
|
118
|
+
```
|
119
|
+
```link :load_glob_with_format
|
120
|
+
load: "%{home}/examples/load*.sh"
|
121
|
+
```
|
122
|
+
|
123
|
+
```link :save_glob_load*
|
124
|
+
save: examples/*.sh
|
125
|
+
```
|
126
|
+
|
127
|
+
```link :save_glob_*
|
128
|
+
save: examples/*.sh
|
129
|
+
```
|
130
|
+
```link :load_glob_*
|
131
|
+
load: examples/*.sh
|
132
|
+
```
|
data/examples/llm.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
1. show practical examples for three important Bash commands.
|
2
|
+
2. the commands must rely only on resources created and deleted in the example
|
3
|
+
|
4
|
+
Let's create practical examples for three important Bash commands where all resources are created and deleted within the examples. The commands we'll use are `touch` (to create a file), `echo` (to write to a file), and `rm` (to delete a file).
|
5
|
+
|
6
|
+
### 1. `touch` - Create an Empty File
|
7
|
+
|
8
|
+
**Purpose**: `touch` is used to create an empty file or update the timestamp of an existing file.
|
9
|
+
|
10
|
+
**Example**: Create an empty file named `example.txt`.
|
11
|
+
|
12
|
+
```bash
|
13
|
+
touch example.txt
|
14
|
+
```
|
15
|
+
|
16
|
+
### 2. `echo` - Write to a File
|
17
|
+
|
18
|
+
**Purpose**: `echo` is used to display a line of text. Combined with redirection, it can write text to a file.
|
19
|
+
|
20
|
+
**Example**: Write "Hello, world!" to `example.txt`.
|
21
|
+
|
22
|
+
```bash
|
23
|
+
echo "Hello, world!" > example.txt
|
24
|
+
```
|
25
|
+
|
26
|
+
### 3. `rm` - Remove a File
|
27
|
+
|
28
|
+
**Purpose**: `rm` is used to remove files or directories.
|
29
|
+
|
30
|
+
**Example**: Delete the `example.txt` file.
|
31
|
+
|
32
|
+
```bash
|
33
|
+
rm example.txt
|
34
|
+
```
|
35
|
+
|
36
|
+
**Combined Script**: To see all these commands in action, you can create a script that executes them sequentially:
|
37
|
+
|
38
|
+
```bash
|
39
|
+
#!/bin/bash
|
40
|
+
|
41
|
+
# Create an empty file
|
42
|
+
touch example.txt
|
43
|
+
|
44
|
+
# Write text to the file
|
45
|
+
echo "Hello, world!" > example.txt
|
46
|
+
|
47
|
+
# Display the file content
|
48
|
+
cat example.txt
|
49
|
+
|
50
|
+
# Remove the file
|
51
|
+
rm example.txt
|
52
|
+
```
|
53
|
+
|
54
|
+
**Note**: After this script runs, `example.txt` is created, written to, displayed, and then deleted, ensuring that no external resources are used or left behind.
|
data/lib/find_files.rb
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
# Example:
|
23
23
|
# find_files('version.rb', ['lib/**', 'spec'])
|
24
24
|
# # This might return file paths like ['lib/markdown_exec/version.rb', 'spec/version_spec.rb'].
|
25
|
-
def find_files(pattern, paths)
|
25
|
+
def find_files(pattern, paths = ['', Dir.pwd])
|
26
26
|
matched_files = []
|
27
27
|
|
28
28
|
paths.each do |path_with_wildcard|
|
@@ -65,7 +65,6 @@ class TestFindFiles < Minitest::Test
|
|
65
65
|
expected_files = [
|
66
66
|
'lib/cli.rb',
|
67
67
|
'lib/colorize.rb',
|
68
|
-
'lib/dev/llm.rb',
|
69
68
|
'lib/dev/watchfile.sh',
|
70
69
|
'lib/markdown_exec.rb',
|
71
70
|
'lib/markdown_exec/version.rb'
|