mirror of
https://github.com/NixOS/nix
synced 2025-07-05 16:31:47 +02:00
nix copy: Add --profile flag
This allows `nix copy` to atomically copy a store path and point a profile to it, without the risk that the store path might be GC'ed in between. This is useful for instance when deploying a new NixOS system profile from a remote store.
This commit is contained in:
parent
26c3fc11ea
commit
76f75e7691
9 changed files with 53 additions and 27 deletions
|
@ -238,7 +238,7 @@ public:
|
|||
|
||||
BuiltPathsCommand(bool recursive = false);
|
||||
|
||||
virtual void run(ref<Store> store, BuiltPaths && paths) = 0;
|
||||
virtual void run(ref<Store> store, BuiltPaths && allPaths, BuiltPaths && rootPaths) = 0;
|
||||
|
||||
void run(ref<Store> store, Installables && installables) override;
|
||||
|
||||
|
@ -251,7 +251,7 @@ struct StorePathsCommand : public BuiltPathsCommand
|
|||
|
||||
virtual void run(ref<Store> store, StorePaths && storePaths) = 0;
|
||||
|
||||
void run(ref<Store> store, BuiltPaths && paths) override;
|
||||
void run(ref<Store> store, BuiltPaths && allPaths, BuiltPaths && rootPaths) override;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -301,11 +301,15 @@ struct MixProfile : virtual StoreCommand
|
|||
MixProfile();
|
||||
|
||||
/* If 'profile' is set, make it point at 'storePath'. */
|
||||
void updateProfile(const StorePath & storePath);
|
||||
void updateProfile(
|
||||
const StorePath & storePath,
|
||||
ref<Store> store);
|
||||
|
||||
/* If 'profile' is set, make it point at the store path produced
|
||||
by 'buildables'. */
|
||||
void updateProfile(const BuiltPaths & buildables);
|
||||
void updateProfile(
|
||||
const BuiltPaths & buildables,
|
||||
ref<Store> store);
|
||||
};
|
||||
|
||||
struct MixDefaultProfile : MixProfile
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue