forked from toolshed/abra
		
	| @ -1,6 +1,7 @@ | ||||
| package internal | ||||
|  | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"sort" | ||||
| @ -9,6 +10,7 @@ import ( | ||||
| 	appPkg "coopcloud.tech/abra/pkg/app" | ||||
| 	"coopcloud.tech/abra/pkg/config" | ||||
| 	"coopcloud.tech/abra/pkg/formatter" | ||||
| 	"coopcloud.tech/abra/pkg/i18n" | ||||
| 	"coopcloud.tech/abra/pkg/log" | ||||
| 	"coopcloud.tech/tagcmp" | ||||
| 	"github.com/AlecAivazis/survey/v2" | ||||
| @ -70,18 +72,18 @@ func DeployOverview( | ||||
| 	} | ||||
|  | ||||
| 	rows := [][]string{ | ||||
| 		{"DOMAIN", domain}, | ||||
| 		{"RECIPE", app.Recipe.Name}, | ||||
| 		{"SERVER", server}, | ||||
| 		{"CONFIG", deployConfig}, | ||||
| 		{i18n.G("DOMAIN"), domain}, | ||||
| 		{i18n.G("RECIPE"), app.Recipe.Name}, | ||||
| 		{i18n.G("SERVER"), server}, | ||||
| 		{i18n.G("CONFIG"), deployConfig}, | ||||
| 		{"", ""}, | ||||
| 		{"CURRENT DEPLOYMENT", formatter.BoldDirtyDefault(deployedVersion)}, | ||||
| 		{"ENV VERSION", formatter.BoldDirtyDefault(envVersion)}, | ||||
| 		{"NEW DEPLOYMENT", formatter.BoldDirtyDefault(toDeployVersion)}, | ||||
| 		{i18n.G("CURRENT DEPLOYMENT"), formatter.BoldDirtyDefault(deployedVersion)}, | ||||
| 		{i18n.G("ENV VERSION"), formatter.BoldDirtyDefault(envVersion)}, | ||||
| 		{i18n.G("NEW DEPLOYMENT"), formatter.BoldDirtyDefault(toDeployVersion)}, | ||||
| 	} | ||||
|  | ||||
| 	deployType := getDeployType(deployedVersion, toDeployVersion) | ||||
| 	overview := formatter.CreateOverview(fmt.Sprintf("%s OVERVIEW", deployType), rows) | ||||
| 	overview := formatter.CreateOverview(i18n.G("%s OVERVIEW", deployType), rows) | ||||
|  | ||||
| 	fmt.Println(overview) | ||||
|  | ||||
| @ -104,7 +106,7 @@ func DeployOverview( | ||||
| 	} | ||||
|  | ||||
| 	if !response { | ||||
| 		log.Fatal("deployment cancelled") | ||||
| 		log.Fatal(i18n.G("deployment cancelled")) | ||||
| 	} | ||||
|  | ||||
| 	return nil | ||||
| @ -112,32 +114,32 @@ func DeployOverview( | ||||
|  | ||||
| func getDeployType(currentVersion, newVersion string) string { | ||||
| 	if newVersion == config.NO_DOMAIN_DEFAULT { | ||||
| 		return "UNDEPLOY" | ||||
| 		return i18n.G("UNDEPLOY") | ||||
| 	} | ||||
| 	if strings.Contains(newVersion, "+U") { | ||||
| 		return "CHAOS DEPLOY" | ||||
| 		return i18n.G("CHAOS DEPLOY") | ||||
| 	} | ||||
| 	if strings.Contains(currentVersion, "+U") { | ||||
| 		return "UNCHAOS DEPLOY" | ||||
| 		return i18n.G("UNCHAOS DEPLOY") | ||||
| 	} | ||||
| 	if currentVersion == newVersion { | ||||
| 		return "REDEPLOY" | ||||
| 		return ("REDEPLOY") | ||||
| 	} | ||||
| 	if currentVersion == config.NO_VERSION_DEFAULT { | ||||
| 		return "NEW DEPLOY" | ||||
| 		return i18n.G("NEW DEPLOY") | ||||
| 	} | ||||
| 	currentParsed, err := tagcmp.Parse(currentVersion) | ||||
| 	if err != nil { | ||||
| 		return "DEPLOY" | ||||
| 		return i18n.G("DEPLOY") | ||||
| 	} | ||||
| 	newParsed, err := tagcmp.Parse(newVersion) | ||||
| 	if err != nil { | ||||
| 		return "DEPLOY" | ||||
| 		return i18n.G("DEPLOY") | ||||
| 	} | ||||
| 	if currentParsed.IsLessThan(newParsed) { | ||||
| 		return "UPGRADE" | ||||
| 		return i18n.G("UPGRADE") | ||||
| 	} | ||||
| 	return "DOWNGRADE" | ||||
| 	return i18n.G("DOWNGRADE") | ||||
| } | ||||
|  | ||||
| // PostCmds parses a string of commands and executes them inside of the respective services | ||||
| @ -146,7 +148,7 @@ func getDeployType(currentVersion, newVersion string) string { | ||||
| func PostCmds(cl *dockerClient.Client, app appPkg.App, commands string) error { | ||||
| 	if _, err := os.Stat(app.Recipe.AbraShPath); err != nil { | ||||
| 		if os.IsNotExist(err) { | ||||
| 			return fmt.Errorf("%s does not exist for %s?", app.Recipe.AbraShPath, app.Name) | ||||
| 			return errors.New(i18n.G("%s does not exist for %s?", app.Recipe.AbraShPath, app.Name)) | ||||
| 		} | ||||
| 		return err | ||||
| 	} | ||||
| @ -154,7 +156,7 @@ func PostCmds(cl *dockerClient.Client, app appPkg.App, commands string) error { | ||||
| 	for _, command := range strings.Split(commands, "|") { | ||||
| 		commandParts := strings.Split(command, " ") | ||||
| 		if len(commandParts) < 2 { | ||||
| 			return fmt.Errorf("not enough arguments: %s", command) | ||||
| 			return errors.New(i18n.G("not enough arguments: %s", command)) | ||||
| 		} | ||||
| 		targetServiceName := commandParts[0] | ||||
| 		cmdName := commandParts[1] | ||||
| @ -162,7 +164,7 @@ func PostCmds(cl *dockerClient.Client, app appPkg.App, commands string) error { | ||||
| 		if len(commandParts) > 2 { | ||||
| 			parsedCmdArgs = fmt.Sprintf("%s ", strings.Join(commandParts[2:], " ")) | ||||
| 		} | ||||
| 		log.Infof("running post-command '%s %s' in container %s", cmdName, parsedCmdArgs, targetServiceName) | ||||
| 		log.Info(i18n.G("running post-command '%s %s' in container %s", cmdName, parsedCmdArgs, targetServiceName)) | ||||
|  | ||||
| 		if err := EnsureCommand(app.Recipe.AbraShPath, app.Recipe.Name, cmdName); err != nil { | ||||
| 			return err | ||||
| @ -184,7 +186,7 @@ func PostCmds(cl *dockerClient.Client, app appPkg.App, commands string) error { | ||||
| 			return fmt.Errorf("no service %s for %s?", targetServiceName, app.Name) | ||||
| 		} | ||||
|  | ||||
| 		log.Debugf("running command %s %s within the context of %s_%s", cmdName, parsedCmdArgs, app.StackName(), targetServiceName) | ||||
| 		log.Debug(i18n.G("running command %s %s within the context of %s_%s", cmdName, parsedCmdArgs, app.StackName(), targetServiceName)) | ||||
|  | ||||
| 		requestTTY := true | ||||
| 		if err := RunCmdRemote( | ||||
|  | ||||
		Reference in New Issue
	
	Block a user