Skip to content

Commit

Permalink
Add upgrade command (#102)
Browse files Browse the repository at this point in the history
* Add upgrade command

* Add upgrade command

* Add upgrade command

* Add upgrade command

* Add upgrade command
  • Loading branch information
naresh-kumar-babu authored Feb 13, 2024
1 parent 70cfe2a commit 24df936
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cmd/list/list.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package start
package list

import (
"github.com/spf13/cobra"
Expand Down
2 changes: 2 additions & 0 deletions cmd/root/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
skinCmd "github.com/CanastaWiki/Canasta-CLI-Go/cmd/skin"
startCmd "github.com/CanastaWiki/Canasta-CLI-Go/cmd/start"
stopCmd "github.com/CanastaWiki/Canasta-CLI-Go/cmd/stop"
upgradeCmd "github.com/CanastaWiki/Canasta-CLI-Go/cmd/upgrade"
versionCmd "github.com/CanastaWiki/Canasta-CLI-Go/cmd/version"

"github.com/CanastaWiki/Canasta-CLI-Go/internal/config"
Expand Down Expand Up @@ -80,6 +81,7 @@ func init() {
rootCmd.AddCommand(skinCmd.NewCmdCreate())
rootCmd.AddCommand(startCmd.NewCmdCreate())
rootCmd.AddCommand(stopCmd.NewCmdCreate())
rootCmd.AddCommand(upgradeCmd.NewCmdCreate())
rootCmd.AddCommand(versionCmd.NewCmdCreate())
rootCmd.AddCommand(addCmd.NewCmdCreate())
rootCmd.AddCommand(removeCmd.NewCmdCreate())
Expand Down
73 changes: 73 additions & 0 deletions cmd/upgrade/upgrade.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package upgrade

import (
"fmt"
"log"
"os"

"github.com/spf13/cobra"

"github.com/CanastaWiki/Canasta-CLI-Go/internal/canasta"
"github.com/CanastaWiki/Canasta-CLI-Go/internal/config"
"github.com/CanastaWiki/Canasta-CLI-Go/internal/git"
"github.com/CanastaWiki/Canasta-CLI-Go/internal/orchestrators"
)

var (
pwd string
err error
instance config.Installation
)

func NewCmdCreate() *cobra.Command {
var upgradeCmd = &cobra.Command{
Use: "upgrade",
Short: "Upgrade a Canasta installation to the latest version",
RunE: func(cmd *cobra.Command, args []string) error {
if instance.Id == "" && len(args) > 0 {
instance.Id = args[0]
}
if err := Upgrade(instance); err != nil {
return err
}
return nil
},
}
if pwd, err = os.Getwd(); err != nil {
log.Fatal(err)
}

upgradeCmd.Flags().StringVarP(&instance.Path, "path", "p", pwd, "Canasta installation directory")
upgradeCmd.Flags().StringVarP(&instance.Id, "id", "i", "", "Canasta instance ID")
return upgradeCmd
}

func Upgrade(instance config.Installation) error {

var err error

//Checking Installation existence
instance, err = canasta.CheckCanastaId(instance)
if err != nil {
return err
}
fmt.Print("Pulling the latest changes\n")
//Pulling the latest changes from github
if err = git.Pull(instance.Path); err != nil {
return err
}

//Restarting the containers
if err = orchestrators.StopAndStart(instance.Path, instance.Orchestrator); err != nil {
return err
}

//Touch LocalSettings.php
fmt.Print("Running 'touch LocalSettings.php' to flush cache\n")
_, err = orchestrators.ExecWithError(instance.Path, instance.Orchestrator, "web", "touch LocalSettings.php")
if err != nil {
return err
}
fmt.Print("Canasta Upgraded!\n")
return nil
}
8 changes: 8 additions & 0 deletions internal/git/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,11 @@ func Cloneb(repo, path string, branch string) error {
}
return nil
}

func Pull(path string) error {
err, output := execute.Run(path, "git", "pull", "origin", "main")
if err != nil {
return fmt.Errorf(output)
}
return nil
}

0 comments on commit 24df936

Please sign in to comment.