forked from toolshed/abra
		
	fix: better parsing errors
See toolshed/organising#608 See toolshed/organising#531
This commit is contained in:
		@ -117,7 +117,7 @@ beforehand. See "abra app backup" for more.`,
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if deployMeta.Version != config.UNKNOWN_DEFAULT && chosenUpgrade == "" {
 | 
							if deployMeta.Version != config.UNKNOWN_DEFAULT && chosenUpgrade == "" {
 | 
				
			||||||
			upgradeAvailable, err := ensureUpgradesAvailable(versions, &availableUpgrades, deployMeta)
 | 
								upgradeAvailable, err := ensureUpgradesAvailable(app, versions, &availableUpgrades, deployMeta)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				log.Fatal(err)
 | 
									log.Fatal(err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@ -314,18 +314,18 @@ func getReleaseNotes(
 | 
				
			|||||||
) error {
 | 
					) error {
 | 
				
			||||||
	parsedChosenUpgrade, err := tagcmp.Parse(chosenUpgrade)
 | 
						parsedChosenUpgrade, err := tagcmp.Parse(chosenUpgrade)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return fmt.Errorf("parsing chosen upgrade version failed: %s", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
 | 
						parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return fmt.Errorf("parsing deployment version failed: %s", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, version := range internal.SortVersionsDesc(versions) {
 | 
						for _, version := range internal.SortVersionsDesc(versions) {
 | 
				
			||||||
		parsedVersion, err := tagcmp.Parse(version)
 | 
							parsedVersion, err := tagcmp.Parse(version)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return fmt.Errorf("parsing recipe version failed: %s", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if parsedVersion.IsGreaterThan(parsedDeployedVersion) &&
 | 
							if parsedVersion.IsGreaterThan(parsedDeployedVersion) &&
 | 
				
			||||||
@ -351,19 +351,20 @@ func getReleaseNotes(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// ensureUpgradesAvailable ensures that there are available upgrades.
 | 
					// ensureUpgradesAvailable ensures that there are available upgrades.
 | 
				
			||||||
func ensureUpgradesAvailable(
 | 
					func ensureUpgradesAvailable(
 | 
				
			||||||
 | 
						app app.App,
 | 
				
			||||||
	versions []string,
 | 
						versions []string,
 | 
				
			||||||
	availableUpgrades *[]string,
 | 
						availableUpgrades *[]string,
 | 
				
			||||||
	deployMeta stack.DeployMeta,
 | 
						deployMeta stack.DeployMeta,
 | 
				
			||||||
) (bool, error) {
 | 
					) (bool, error) {
 | 
				
			||||||
	parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
 | 
						parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return false, err
 | 
							return false, fmt.Errorf("parsing deployed version failed: %s", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for _, version := range versions {
 | 
						for _, version := range versions {
 | 
				
			||||||
		parsedVersion, err := tagcmp.Parse(version)
 | 
							parsedVersion, err := tagcmp.Parse(version)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return false, err
 | 
								return false, fmt.Errorf("parsing recipe version failed: %s", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if parsedVersion.IsGreaterThan(parsedDeployedVersion) &&
 | 
							if parsedVersion.IsGreaterThan(parsedDeployedVersion) &&
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							@ -5,7 +5,7 @@ go 1.23.5
 | 
				
			|||||||
toolchain go1.24.1
 | 
					toolchain go1.24.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require (
 | 
					require (
 | 
				
			||||||
	coopcloud.tech/tagcmp v0.0.0-20250427094623-9ea3bbbde8e5
 | 
						coopcloud.tech/tagcmp v0.0.0-20250818180036-0ec1b205b5ca
 | 
				
			||||||
	git.coopcloud.tech/toolshed/godotenv v1.5.2-0.20250103171850-4d0ca41daa5c
 | 
						git.coopcloud.tech/toolshed/godotenv v1.5.2-0.20250103171850-4d0ca41daa5c
 | 
				
			||||||
	github.com/AlecAivazis/survey/v2 v2.3.7
 | 
						github.com/AlecAivazis/survey/v2 v2.3.7
 | 
				
			||||||
	github.com/charmbracelet/bubbletea v1.3.6
 | 
						github.com/charmbracelet/bubbletea v1.3.6
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
									
									
									
									
								
							@ -26,6 +26,8 @@ coopcloud.tech/tagcmp v0.0.0-20230809071031-eb3e7758d4eb h1:Ws6WEwKXeaYEkfdkX6Aq
 | 
				
			|||||||
coopcloud.tech/tagcmp v0.0.0-20230809071031-eb3e7758d4eb/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ=
 | 
					coopcloud.tech/tagcmp v0.0.0-20230809071031-eb3e7758d4eb/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ=
 | 
				
			||||||
coopcloud.tech/tagcmp v0.0.0-20250427094623-9ea3bbbde8e5 h1:tphJCjFJw9fdjyKnbU0f7f3z5KtYE8VbUcAfu+oHKg8=
 | 
					coopcloud.tech/tagcmp v0.0.0-20250427094623-9ea3bbbde8e5 h1:tphJCjFJw9fdjyKnbU0f7f3z5KtYE8VbUcAfu+oHKg8=
 | 
				
			||||||
coopcloud.tech/tagcmp v0.0.0-20250427094623-9ea3bbbde8e5/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ=
 | 
					coopcloud.tech/tagcmp v0.0.0-20250427094623-9ea3bbbde8e5/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ=
 | 
				
			||||||
 | 
					coopcloud.tech/tagcmp v0.0.0-20250818180036-0ec1b205b5ca h1:gSD53tBAsbIGq4SnFfq+mEep6foekQ2a5ea7b38qkm0=
 | 
				
			||||||
 | 
					coopcloud.tech/tagcmp v0.0.0-20250818180036-0ec1b205b5ca/go.mod h1:ESVm0wQKcbcFi06jItF3rI7enf4Jt2PvbkWpDDHk1DQ=
 | 
				
			||||||
dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
 | 
					dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
 | 
				
			||||||
dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
 | 
					dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
 | 
				
			||||||
dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
 | 
					dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user