gittuf/internal/cmd/trust/init/init.go
Aditya Sirish A Yelgundhalli 72f47b06d0
*: Add repositoryLocation to root metadata
Signed-off-by: Aditya Sirish A Yelgundhalli <ayelgundhall@bloomberg.net>
2025-01-16 15:10:29 -05:00

54 lines
1.2 KiB
Go

// 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
}