github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/resources/project/push.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 "github.com/taubyte/tau-cli/flags" 7 projectFlags "github.com/taubyte/tau-cli/flags/project" 8 projectI18n "github.com/taubyte/tau-cli/i18n/project" 9 projectLib "github.com/taubyte/tau-cli/lib/project" 10 "github.com/taubyte/tau-cli/prompts" 11 projectPrompts "github.com/taubyte/tau-cli/prompts/project" 12 "github.com/urfave/cli/v2" 13 ) 14 15 func (link) Push() common.Command { 16 return common.Create(&cli.Command{ 17 Flags: []cli.Flag{ 18 flags.CommitMessage, 19 projectFlags.ConfigOnly, 20 projectFlags.CodeOnly, 21 }, 22 Action: push, 23 }) 24 } 25 26 func push(ctx *cli.Context) error { 27 project, err := projectPrompts.GetOrSelect(ctx, true) 28 if err != nil { 29 return err 30 } 31 32 repoHandler, err := projectLib.Repository(project.Name).Open() 33 if err != nil { 34 return err 35 } 36 37 commitMessage := prompts.GetOrRequireACommitMessage(ctx) 38 39 err = (&dualRepoHandler{ 40 ctx: ctx, 41 repository: repoHandler, 42 projectName: project.Name, 43 errorFormat: projectI18n.PullingProjectFailed, 44 action: func(r *gosimplegit.Repository) error { 45 err = r.Commit(commitMessage, ".") 46 if err != nil { 47 return err 48 } 49 50 return r.Push() 51 }, 52 }).Run() 53 if err != nil { 54 return err 55 } 56 57 projectI18n.PushedProject(project.Name) 58 return nil 59 }