github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/resources/project/pull.go (about)

     1  package project
     2  
     3  import (
     4  	gosimplegit "github.com/taubyte/go-simple-git"
     5  	"github.com/taubyte/tau-cli/cli/common"
     6  	projectFlags "github.com/taubyte/tau-cli/flags/project"
     7  	projectI18n "github.com/taubyte/tau-cli/i18n/project"
     8  	projectLib "github.com/taubyte/tau-cli/lib/project"
     9  	projectPrompts "github.com/taubyte/tau-cli/prompts/project"
    10  	"github.com/urfave/cli/v2"
    11  )
    12  
    13  func (link) Pull() common.Command {
    14  	return common.Create(&cli.Command{
    15  		Flags: []cli.Flag{
    16  			projectFlags.ConfigOnly,
    17  			projectFlags.CodeOnly,
    18  		},
    19  		Action: pull,
    20  	})
    21  }
    22  
    23  func pull(ctx *cli.Context) error {
    24  	project, err := projectPrompts.GetOrSelect(ctx, true)
    25  	if err != nil {
    26  		return err
    27  	}
    28  
    29  	repoHandler, err := projectLib.Repository(project.Name).Open()
    30  	if err != nil {
    31  		return err
    32  	}
    33  
    34  	err = (&dualRepoHandler{
    35  		ctx:         ctx,
    36  		repository:  repoHandler,
    37  		projectName: project.Name,
    38  		errorFormat: projectI18n.PullingProjectFailed,
    39  		action: func(r *gosimplegit.Repository) error {
    40  			return r.Pull()
    41  		},
    42  	}).Run()
    43  	if err != nil {
    44  		return err
    45  	}
    46  
    47  	projectI18n.PulledProject(project.Name)
    48  	return nil
    49  }