diff options
Diffstat (limited to 'src/libstore/store-api.cc')
-rw-r--r-- | src/libstore/store-api.cc | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc index 4d5441318832..9eb313da01ff 100644 --- a/src/libstore/store-api.cc +++ b/src/libstore/store-api.cc @@ -8,7 +8,8 @@ namespace nix { bool StoreAPI::hasSubstitutes(const Path & path) { - return !querySubstitutes(path).empty(); + PathSet paths = querySubstitutablePaths(); + return paths.find(path) != paths.end(); } @@ -130,6 +131,24 @@ Path computeStorePathForText(const string & suffix, const string & s, } +ValidPathInfo decodeValidPathInfo(std::istream & str) +{ + ValidPathInfo info; + getline(str, info.path); + if (str.eof()) { info.path = ""; return info; } + getline(str, info.deriver); + string s; int n; + getline(str, s); + if (!string2Int(s, n)) throw Error("number expected"); + while (n--) { + getline(str, s); + info.references.insert(s); + } + if (!str || str.eof()) throw Error("missing input"); + return info; +} + + } |