diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2016-11-02 20:26:52 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2016-11-02 20:26:52 -0700 |
| commit | 4665b16ab3556235ddcbdac160df261ee87694e4 (patch) | |
| tree | 6bbe535285a808ff457ada4cccc28838a7868400 /toolsrc/src/vcpkglib_helpers.cpp | |
| parent | 079a027b1e81becd4ba448362579f625dd7bcca4 (diff) | |
| download | vcpkg-4665b16ab3556235ddcbdac160df261ee87694e4.tar.gz vcpkg-4665b16ab3556235ddcbdac160df261ee87694e4.zip | |
Add checks for fields in CONTROL file. Resolves #228
Diffstat (limited to 'toolsrc/src/vcpkglib_helpers.cpp')
| -rw-r--r-- | toolsrc/src/vcpkglib_helpers.cpp | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/toolsrc/src/vcpkglib_helpers.cpp b/toolsrc/src/vcpkglib_helpers.cpp index 02182b995..3d14d4b06 100644 --- a/toolsrc/src/vcpkglib_helpers.cpp +++ b/toolsrc/src/vcpkglib_helpers.cpp @@ -13,14 +13,37 @@ namespace vcpkg {namespace details } return it->second; - }; + } + + std::string remove_optional_field(std::unordered_map<std::string, std::string>* fields, const std::string& fieldname) + { + auto it = fields->find(fieldname); + if (it == fields->end()) + { + return std::string(); + } + + const std::string value = std::move(it->second); + fields->erase(it); + return value; + } std::string required_field(const std::unordered_map<std::string, std::string>& fields, const std::string& fieldname) { auto it = fields.find(fieldname); - vcpkg::Checks::check_exit(it != fields.end(), "Required field not present: %s", fieldname); + Checks::check_exit(it != fields.end(), "Required field not present: %s", fieldname); return it->second; - }; + } + + std::string remove_required_field(std::unordered_map<std::string, std::string>* fields, const std::string& fieldname) + { + auto it = fields->find(fieldname); + Checks::check_exit(it != fields->end(), "Required field not present: %s", fieldname); + + const std::string value = std::move(it->second); + fields->erase(it); + return value; + } std::vector<std::string> parse_depends(const std::string& depends_string) { |
