diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-02-20T23·17+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-02-20T23·17+0000 |
commit | b824a1daeefd1611c8d84432dc0b2b38f24bbbfd (patch) | |
tree | 85e67cde3c6efea8a1ecd9170c09bc66ac248852 /src/libstore/local-store.cc | |
parent | 3390c1be76f648ac0b18199c6204a32d1d6d5fbb (diff) |
* Start of `nix-store --export' operation for serialising a store
path. This is like `nix-store --dump', only it also dumps the meta-information of the store path (references, deriver). Will add a `--sign' flag later to add a cryptographic signature, which we will use for exchanging store paths between build farm machines in a secure manner.
Diffstat (limited to 'src/libstore/local-store.cc')
-rw-r--r-- | src/libstore/local-store.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index cace5cb60b36..dcb430a0fcfd 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -696,6 +696,24 @@ Path LocalStore::addTextToStore(const string & suffix, const string & s, } +void LocalStore::exportPath(const Path & path, bool sign, + Sink & sink) +{ + assertStorePath(path); + + dumpPath(path, sink); + + writeString(path, sink); + + PathSet references; + queryReferences(path, references); + writeStringSet(references, sink); + + Path deriver = queryDeriver(noTxn, path); + writeString(deriver, sink); +} + + void deleteFromStore(const Path & _path, unsigned long long & bytesFreed) { bytesFreed = 0; |