mirror of
https://github.com/89luca89/distrobox.git
synced 2026-08-17 16:34:42 -05:00
chore(commands): tidy error paths and drop v1-comparability code
Fix "contaiers" typo (list, rm), route the upgrade error through the printer, and simplify joinHooks now that tests/compare.sh is gone. Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
This commit is contained in:
committed by
Alessio Biancalana
parent
b31ea49e91
commit
c71075124b
+11
-13
@@ -215,24 +215,22 @@ func (ac *AssembleCommand) createItem(ctx context.Context, item manifest.Item, d
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ac *AssembleCommand) joinHooks(hooks []string) string {
|
func (ac *AssembleCommand) joinHooks(hooks []string) string {
|
||||||
sb := strings.Builder{}
|
// A hook that already ends in its own terminator (`;` or `&&`) keeps
|
||||||
|
// it; otherwise insert ` && ` so consecutive hooks don't run together.
|
||||||
|
selfTerminated := regexp.MustCompile(`(;|&&)[[:space:]]?$`)
|
||||||
|
|
||||||
|
sb := strings.Builder{}
|
||||||
for i, hook := range hooks {
|
for i, hook := range hooks {
|
||||||
sb.WriteString(hook)
|
sb.WriteString(hook)
|
||||||
|
if i == len(hooks)-1 {
|
||||||
if i < len(hooks)-1 {
|
continue
|
||||||
semicolonRegex := regexp.MustCompile(`;[[:space:]]{0,1}$`)
|
}
|
||||||
andAndRegex := regexp.MustCompile(`&&[[:space:]]{0,1}$`)
|
if selfTerminated.MatchString(hook) {
|
||||||
|
sb.WriteString(" ")
|
||||||
separator := " " // two spaces just because v1 does that, so it's comparable in regression tests
|
} else {
|
||||||
if !semicolonRegex.MatchString(hook) && !andAndRegex.MatchString(hook) {
|
sb.WriteString(" && ")
|
||||||
separator = " && "
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.WriteString(separator)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.String()
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func NewListCommand(cfg *config.Values, cm containermanager.ContainerManager) *L
|
|||||||
func (c *ListCommand) Execute(ctx context.Context) (*ListResult, error) {
|
func (c *ListCommand) Execute(ctx context.Context) (*ListResult, error) {
|
||||||
containers, err := c.containerManager.ListContainers(ctx)
|
containers, err := c.containerManager.ListContainers(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed while listing contaiers: %w", err)
|
return nil, fmt.Errorf("failed while listing containers: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var distroboxes []containermanager.Container
|
var distroboxes []containermanager.Container
|
||||||
|
|||||||
+1
-1
@@ -66,7 +66,7 @@ func (c *RmCommand) Execute(ctx context.Context, options RmOptions) (*RmResult,
|
|||||||
|
|
||||||
listResult, err := c.listCmd.Execute(ctx)
|
listResult, err := c.listCmd.Execute(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed while listing contaiers: %w", err)
|
return nil, fmt.Errorf("failed while listing containers: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
distroboxesToRemove := getContainersToRemove(listResult.Containers, options.ContainerNames, options.All)
|
distroboxesToRemove := getContainersToRemove(listResult.Containers, options.ContainerNames, options.All)
|
||||||
|
|||||||
@@ -85,8 +85,7 @@ func (c *UpgradeCommand) Execute(ctx context.Context, opts *UpgradeOptions) erro
|
|||||||
// Per-container banner, matching the shell (distrobox-upgrade:267).
|
// Per-container banner, matching the shell (distrobox-upgrade:267).
|
||||||
c.printer.Println("Upgrading %s...", name)
|
c.printer.Println("Upgrading %s...", name)
|
||||||
if err := c.upgradeContainer(ctx, name); err != nil {
|
if err := c.upgradeContainer(ctx, name); err != nil {
|
||||||
//nolint:forbidigo // FIXME: waiting for the logger implementation
|
c.printer.PrintErrorln("error upgrading %s: %s", name, err)
|
||||||
fmt.Printf("error upgrading %s: %s\n", name, err)
|
|
||||||
|
|
||||||
lastErr = err
|
lastErr = err
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user