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.
62 lines
1.4 KiB
JSON
62 lines
1.4 KiB
JSON
{
|
|
"abstract" : "manage the installation of multiple software packages",
|
|
"author" : [
|
|
"unknown"
|
|
],
|
|
"dynamic_config" : 1,
|
|
"generated_by" : "Module::Build version 0.422",
|
|
"license" : [
|
|
"gpl_1"
|
|
],
|
|
"meta-spec" : {
|
|
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
|
|
"version" : "2"
|
|
},
|
|
"name" : "Stow",
|
|
"prereqs" : {
|
|
"build" : {
|
|
"requires" : {
|
|
"IO::Scalar" : "0",
|
|
"Hash::Merge": "0",
|
|
"Test::More" : "0",
|
|
"Test::Output" : "0"
|
|
}
|
|
},
|
|
"configure" : {
|
|
"requires" : {
|
|
"Module::Build" : "0"
|
|
}
|
|
},
|
|
"runtime" : {
|
|
"requires" : {
|
|
"Carp" : "0",
|
|
"IO::File" : "0",
|
|
"perl" : "5.006"
|
|
}
|
|
}
|
|
},
|
|
"provides" : {
|
|
"Stow" : {
|
|
"file" : "lib/Stow.pm",
|
|
"version" : "v2.3.0"
|
|
},
|
|
"Stow::Util" : {
|
|
"file" : "lib/Stow/Util.pm",
|
|
"version" : "v2.3.0"
|
|
}
|
|
},
|
|
"release_status" : "stable",
|
|
"resources" : {
|
|
"homepage" : "https://savannah.gnu.org/projects/stow",
|
|
"license" : [
|
|
"http://www.gnu.org/licenses/gpl-2.0.html"
|
|
],
|
|
"repository" : {
|
|
"type" : "git",
|
|
"url" : "git://git.savannah.gnu.org/stow.git"
|
|
}
|
|
},
|
|
"version" : "v2.3.0",
|
|
"x_serialization_backend" : "JSON::PP version 2.27300"
|
|
}
|