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 }