// Copyright The gittuf Authors // SPDX-License-Identifier: Apache-2.0 package init import ( "github.com/gittuf/gittuf/experimental/gittuf" rootopts "github.com/gittuf/gittuf/experimental/gittuf/options/root" "github.com/gittuf/gittuf/internal/cmd/common" "github.com/gittuf/gittuf/internal/cmd/trust/persistent" "github.com/spf13/cobra" ) type options struct { p *persistent.Options location string } func (o *options) AddFlags(cmd *cobra.Command) { cmd.Flags().StringVar( &o.location, "location", "", "location of repository", ) } func (o *options) Run(cmd *cobra.Command, _ []string) error { repo, err := gittuf.LoadRepository() if err != nil { return err } signer, err := gittuf.LoadSigner(repo, o.p.SigningKey) if err != nil { return err } return repo.InitializeRoot(cmd.Context(), signer, true, rootopts.WithRepositoryLocation(o.location)) } func New(persistent *persistent.Options) *cobra.Command { o := &options{p: persistent} cmd := &cobra.Command{ Use: "init", Short: "Initialize gittuf root of trust for repository", PreRunE: common.CheckForSigningKeyFlag, RunE: o.Run, DisableAutoGenTag: true, } o.AddFlags(cmd) return cmd }