internal/cleanup/stack.go (40 lines of code) (raw):

// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one // or more contributor license agreements. Licensed under the Elastic License; // you may not use this file except in compliance with the Elastic License. package cleanup import ( "errors" "fmt" "os" "path/filepath" "github.com/elastic/elastic-package/internal/configuration/locations" "github.com/elastic/elastic-package/internal/packages" "github.com/elastic/elastic-package/internal/logger" ) // Stack function removes built package used by the Package Registry image. func Stack() (string, error) { logger.Debug("Clean built packages from the development stack") packageRoot, err := packages.MustFindPackageRoot() if err != nil { return "", fmt.Errorf("locating package root failed: %w", err) } m, err := packages.ReadPackageManifestFromPackageRoot(packageRoot) if err != nil { return "", fmt.Errorf("reading package manifest failed (path: %s): %w", packageRoot, err) } locationManager, err := locations.NewLocationManager() if err != nil { return "", fmt.Errorf("can't find stack packages dir: %w", err) } destinationDir := filepath.Join(locationManager.PackagesDir(), m.Name) _, err = os.Stat(destinationDir) if err != nil && !errors.Is(err, os.ErrNotExist) { return "", fmt.Errorf("stat file failed: %s: %w", destinationDir, err) } if errors.Is(err, os.ErrNotExist) { logger.Debugf("Stack package is not part of the development stack (missing path: %s)", destinationDir) return "", nil } logger.Debugf("Remove folder (path: %s)", destinationDir) err = os.RemoveAll(destinationDir) if err != nil { return "", fmt.Errorf("can't remove directory (path: %s): %w", destinationDir, err) } return destinationDir, nil }