-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Milestone
Description
Things to take into account
- Support comments in
@directivelines and spaces in goal names - We need to rely on quoting
'str' or "str" - It's desirable that whatever quoting approach we chose it plays nice with shell's quoting:
- The shell highligting applied to
Makesurefilein IDE keeps working. - You can take the goal name as rendered by
./makesure -land use it to call./makesure 'goal name' - However to implement the whole shell-compliant parsing for
'all' "types" of $'strings'will be too complex.
- The shell highligting applied to
- Need to handle
'\''properly and consistently. - Complications with
@docand@define
Comments
@goal goal_with_comment # comment
echo goal_with_comment
@goal test1
@depends_on goal_with_commentThis one won't parse as expected. # comment will be treated as part of goal name
Spaces
@goal @glob 22_parsing*.txt # glob can produce files with whitespaces in the name
echo "$ITEM"
cat "$ITEM"
@goal test2
@depends_on '22_parsing 2.txt' # but currently this is impossibleRight now we rely on default AWK algorithm at parsing a line (NF + $i). This is totally fine for current version since covers most of cases, but we need something more flexible.
Possible approach
@goal no_space
@goal 'name with spaces' # no single quote allowed between single quotes
@goal $'name with \' quote' # $'strings' allow quote escaping ./makesure -l
Available goals:
no_space
'name with spaces'
$'name with \' quote'
Rationale
- Why support both
'str'and$'str'- most of the time
'str'can be used, rarely$'str\'str'
- most of the time
- Why not
"str\"\'str"- this implies unneded variables substitution. I.e.
./makesure "aaa$bbb"will not work as expected.
- this implies unneded variables substitution. I.e.
Reactions are currently unavailable