Remove dependence on project, use cue.mod path.

Ensure that we have done an init in this folder.

Also, force a clean checkout of the tag we've chosen to upgrade to.

Signed-off-by: Joel Longtine <joel@dagger.io>
This commit is contained in:
Joel Longtine 2022-01-27 16:54:42 -07:00
parent 39e206e7d2
commit b33d6b2243
3 changed files with 19 additions and 8 deletions

View File

@ -6,6 +6,8 @@ import (
"go.dagger.io/dagger/cmd/dagger/cmd/common"
"go.dagger.io/dagger/cmd/dagger/logger"
"go.dagger.io/dagger/mod"
"go.dagger.io/dagger/pkg"
"go.dagger.io/dagger/state"
"go.dagger.io/dagger/telemetry"
)
@ -25,7 +27,15 @@ var getCmd = &cobra.Command{
lg := logger.New()
ctx := lg.WithContext(cmd.Context())
var err error
project := common.CurrentProject(ctx)
cueModPath := pkg.GetCueModParent()
// err = pkg.CueModInit(ctx, cueModPath)
_, err = state.Init(ctx, cueModPath)
if err != nil && err != state.ErrAlreadyInit {
lg.Fatal().Err(err).Msg("failed to initialize cue.mod")
}
doneCh := common.TrackProjectCommand(ctx, cmd, project, nil, &telemetry.Property{
Name: "packages",
Value: args,
@ -34,16 +44,16 @@ var getCmd = &cobra.Command{
var update = viper.GetBool("update")
var processedRequires []*mod.Require
var err error
if update && len(args) == 0 {
lg.Info().Msg("updating all installed packages...")
processedRequires, err = mod.UpdateInstalled(ctx, project.Path)
processedRequires, err = mod.UpdateInstalled(ctx, cueModPath)
} else if update && len(args) > 0 {
lg.Info().Msg("updating specified packages...")
processedRequires, err = mod.UpdateAll(ctx, project.Path, args)
processedRequires, err = mod.UpdateAll(ctx, cueModPath, args)
} else if !update && len(args) > 0 {
lg.Info().Msg("installing specified packages...")
processedRequires, err = mod.InstallAll(ctx, project.Path, args)
processedRequires, err = mod.InstallAll(ctx, cueModPath, args)
} else {
lg.Fatal().Msg("unrecognized update/install operation")
}

View File

@ -84,7 +84,8 @@ func (r *repo) checkout(ctx context.Context, version string) error {
}
err = w.Checkout(&git.CheckoutOptions{
Hash: *h,
Hash: *h,
Force: true,
})
if err != nil {
return err

View File

@ -39,7 +39,7 @@ var (
func Vendor(ctx context.Context, p string) error {
if p == "" {
p = getCueModParent()
p = GetCueModParent()
}
cuePkgDir := path.Join(p, "cue.mod", "pkg")
@ -141,8 +141,8 @@ func extractModules(dest string) error {
})
}
// getCueModParent traverses the directory tree up through ancestors looking for a cue.mod folder
func getCueModParent() string {
// GetCueModParent traverses the directory tree up through ancestors looking for a cue.mod folder
func GetCueModParent() string {
cwd, _ := os.Getwd()
parentDir := cwd