From 025476845514a3d1193206fda674ccb0054d53d6 Mon Sep 17 00:00:00 2001 From: Hank Ibell Date: Mon, 12 Dec 2022 13:58:42 -0500 Subject: [PATCH] Remove compiled artifact if we expand it --- liberty/base.go | 8 +++++--- liberty/base_test.go | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/liberty/base.go b/liberty/base.go index fe8479ca..f5760df7 100644 --- a/liberty/base.go +++ b/liberty/base.go @@ -273,7 +273,7 @@ func (b Base) contributeApp(layer libcnb.Layer, config server.Config) error { serverPath := filepath.Join(layer.Path, "wlp", "usr", "servers", b.ServerName) linkPath := filepath.Join(serverPath, "apps", "app") - if err := os.Remove(linkPath); err != nil && !errors.Is(err, fs.ErrNotExist) { + if err := os.RemoveAll(linkPath); err != nil && !errors.Is(err, fs.ErrNotExist) { return fmt.Errorf("unable to remove app\n%w", err) } @@ -291,10 +291,12 @@ func (b Base) contributeApp(layer libcnb.Layer, config server.Config) error { if err != nil { return fmt.Errorf("unable to open compiled artifact\n%w", err) } - err = crush.Extract(compiledArtifact, linkPath, 0) - if err != nil { + if err := crush.Extract(compiledArtifact, linkPath, 0); err != nil { return fmt.Errorf("unable to extract compiled artifact\n%w", err) } + if err := os.Remove(appPath); err != nil { + return fmt.Errorf("unable to remove compiled artifact\n%w", err) + } } if config.Application.Name == "app" { diff --git a/liberty/base_test.go b/liberty/base_test.go index 14a3752f..dccf5edb 100644 --- a/liberty/base_test.go +++ b/liberty/base_test.go @@ -210,8 +210,10 @@ func testBase(t *testing.T, _ spec.G, it spec.S) { layer, err = base.Contribute(layer) Expect(err).ToNot(HaveOccurred()) + // Ensure app war is expanded to /apps/app and compiled artifact was deleted Expect(filepath.Join(layer.Path, "wlp", "usr", "servers", "defaultServer", "apps", "app")).To(BeADirectory()) Expect(filepath.Join(layer.Path, "wlp", "usr", "servers", "defaultServer", "apps", "app", "index.html")).To(BeAnExistingFile()) + Expect(filepath.Join(ctx.Application.Path, "test.war")).ToNot(BeAnExistingFile()) serverDir := filepath.Join(layer.Path, "wlp", "usr", "servers", "defaultServer") for _, file := range []string{