mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-01-12 03:21:33 +00:00
aptly snapshot create from repo command.
This commit is contained in:
@@ -32,6 +32,25 @@ func aptlySnapshotCreate(cmd *commander.Command, args []string) error {
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to create snapshot: %s", err)
|
||||
}
|
||||
} else if len(args) == 4 && args[1] == "from" && args[2] == "repo" {
|
||||
// aptly snapshot create snap from repo mirror
|
||||
localRepoName, snapshotName := args[3], args[0]
|
||||
|
||||
localRepoCollection := debian.NewLocalRepoCollection(context.database)
|
||||
repo, err := localRepoCollection.ByName(localRepoName)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to create snapshot: %s", err)
|
||||
}
|
||||
|
||||
err = localRepoCollection.LoadComplete(repo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to create snapshot: %s", err)
|
||||
}
|
||||
|
||||
snapshot, err = debian.NewSnapshotFromLocalRepo(snapshotName, repo)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to create snapshot: %s", err)
|
||||
}
|
||||
} else if len(args) == 2 && args[1] == "empty" {
|
||||
// aptly snapshot create snap empty
|
||||
snapshotName := args[0]
|
||||
@@ -59,12 +78,15 @@ func aptlySnapshotCreate(cmd *commander.Command, args []string) error {
|
||||
func makeCmdSnapshotCreate() *commander.Command {
|
||||
cmd := &commander.Command{
|
||||
Run: aptlySnapshotCreate,
|
||||
UsageLine: "create <name> from mirror <mirror-name> | create <name> empty",
|
||||
Short: "creates immutable snapshot of mirror contents",
|
||||
UsageLine: "create <name> from mirror <mirror-name> | from repo <repo-name> | create <name> empty",
|
||||
Short: "creates immutable snapshot of mirror (local repo) contents",
|
||||
Long: `
|
||||
Command create .. from mirror makes persistent immutable snapshot of remote repository mirror. Snapshot could be
|
||||
published or further modified using merge, pull and other aptly features.
|
||||
|
||||
Command create .. from repo makes persistent immutable snapshot of local repository. Snapshot could be processed
|
||||
as mirror snapshots, and mixed with snapshots of remote mirrors.
|
||||
|
||||
Command create .. empty creates empty snapshot that could be used as a basis for snapshot pull operations, for example.
|
||||
As snapshots are immutable, creating one empty snapshot should be enough.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user