Parse cli and stowrc files separately
Why:
* We want to selectively apply expansion to:
* Only options from stowrc files.
* Only options that take a path.
* This requires ability to:
* Differentiate cli options from stowrc options
* Distinguish between individual stowrc options.
This change addresses the need by:
* Options from ARGV and stowrc files are separately parsed, resulting in
two options hashes.
* Creating an option hash from stowrc files allows modification of
specific arguments without having to rely on something like regex
parsing of the options.
* get_config_file_options modified to return options hash.
* Uses the same parse_options function that parses ARGV
* Add Hash:Merge to dependencies in order to merge the two option
hashes.
* process_options() merges the two option hashes.
* Get option hash for ARGV
* Get option hash from get_config_file_options().
* Merge the two hashes with Hash::Merge.
* Sanitation and checks are ran on the merged options.
* The options -S, -D, and -R are ignored in stowrc files.
* Due to the way argument parsing happens, the effect of these
actions is not carried from stowrc into parsing of cli options.
* It doesn't seem to make sense to put these options in stowrc
anyway.
This commit is contained in:
parent
feb885fda6
commit
4d1167ffd7
4 changed files with 28 additions and 13 deletions
1
META.yml
1
META.yml
|
|
@ -4,6 +4,7 @@ author:
|
|||
- unknown
|
||||
build_requires:
|
||||
IO::Scalar: '0'
|
||||
Hash::Merge: '0'
|
||||
Test::More: '0'
|
||||
Test::Output: '0'
|
||||
configure_requires:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue