File tree Expand file tree Collapse file tree 6 files changed +49
-4
lines changed Expand file tree Collapse file tree 6 files changed +49
-4
lines changed Original file line number Diff line number Diff line change 3434 # needs to be converted to an array with `eval "data=(${args[file]})"`
3535 repeatable : true
3636
37+ # Setting unique to true will ignore non-unique repeating values
38+ unique : true
39+
3740examples :
3841- upcase README.md LICENSE
3942- upcase *.md
@@ -125,5 +128,23 @@ args:
125128
126129````
127130
131+ ### ` $ ./upcase file1 file2 file1 `
132+
133+ ```` shell
134+
135+ files:
136+ path: file1:
137+ content: content of file1
138+ upcase: CONTENT OF FILE1
139+ path: file2:
140+ content: content of file2
141+ upcase: CONTENT OF FILE2
142+
143+ args:
144+ - ${args[file]} = " file1" " file2"
145+
146+
147+ ````
148+
128149
129150
Original file line number Diff line number Diff line change 1313 # needs to be converted to an array with `eval "data=(${args[file]})"`
1414 repeatable : true
1515
16+ # Setting unique to true will ignore non-unique repeating values
17+ unique : true
18+
1619examples :
1720- upcase README.md LICENSE
1821- upcase *.md
Original file line number Diff line number Diff line change @@ -9,3 +9,4 @@ bashly generate
99./upcase -h
1010./upcase file1
1111./upcase file*
12+ ./upcase file1 file2 file1
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ class Argument < Base
44 class << self
55 def option_keys
66 @option_keys ||= %i[
7- allowed default help name repeatable required validate
7+ allowed default help name repeatable required unique validate
88 ]
99 end
1010 end
Original file line number Diff line number Diff line change @@ -7,9 +7,17 @@ args.each do |arg|
77 if arg.repeatable
88 > args['{{ arg.name }}']="\"$1\""
99 > shift
10- > else
11- > args['{{ arg.name }}']="${args[{{ arg.name }}]} \"$1\""
12- > shift
10+ if arg.unique
11+ > elif [[ ! "${args['{{ arg.name }}']}" =~ \"$1\" ]]; then
12+ > args['{{ arg.name }}']="${args[{{ arg.name }}]} \"$1\""
13+ > shift
14+ > else
15+ > shift
16+ else
17+ > else
18+ > args['{{ arg.name }}']="${args[{{ arg.name }}]} \"$1\""
19+ > shift
20+ end
1321
1422 else
1523 > args['{{ arg.name }}']=$1
Original file line number Diff line number Diff line change @@ -47,3 +47,15 @@ files:
4747
4848args:
4949- ${args[file]} = "file1" "file2"
50+ + ./upcase file1 file2 file1
51+
52+ files:
53+ path: file1:
54+ content: content of file1
55+ upcase: CONTENT OF FILE1
56+ path: file2:
57+ content: content of file2
58+ upcase: CONTENT OF FILE2
59+
60+ args:
61+ - ${args[file]} = "file1" "file2"
You can’t perform that action at this time.
0 commit comments