about summary refs log tree commit diff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-03-02T15·57+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-03-02T15·57+0000
commit07b4399fb6f04d0cae58b8cf0a13efeeaf9d590b (patch)
treecd35f9205c15098f51c6c11da5148b27e4c7060f /src/libstore
parent9e50e648a47c1ef3b734bf12945c8b29a8c8f9f8 (diff)
* `nix-store -q --hash' to quickly query the hash of the contents of a
  store path (which is stored in the database).

Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/store.cc8
-rw-r--r--src/libstore/store.hh3
2 files changed, 11 insertions, 0 deletions
diff --git a/src/libstore/store.cc b/src/libstore/store.cc
index 946be5e02b7b..9f50e597eb34 100644
--- a/src/libstore/store.cc
+++ b/src/libstore/store.cc
@@ -509,6 +509,14 @@ static Hash queryHash(const Transaction & txn, const Path & storePath)
 }
 
 
+Hash queryPathHash(const Path & path)
+{
+    if (!isValidPath(path))
+        throw Error(format("path `%1%' is not valid") % path);
+    return queryHash(noTxn, path);
+}
+
+
 void registerValidPath(const Transaction & txn,
     const Path & _path, const Hash & hash, const PathSet & references,
     const Path & deriver)
diff --git a/src/libstore/store.hh b/src/libstore/store.hh
index 3b18664de646..d5d8ea81eae8 100644
--- a/src/libstore/store.hh
+++ b/src/libstore/store.hh
@@ -89,6 +89,9 @@ void canonicalisePathMetaData(const Path & path);
 /* Checks whether a path is valid. */ 
 bool isValidPath(const Path & path);
 
+/* Queries the hash of a valid path. */ 
+Hash queryPathHash(const Path & path);
+
 /* Sets the set of outgoing FS references for a store path.  Use with
    care! */
 void setReferences(const Transaction & txn, const Path & storePath,