From e1580b7968135ea76c7fdd3204565dd2f219b197 Mon Sep 17 00:00:00 2001 From: Matthias Loibl Date: Mon, 12 Aug 2019 18:16:31 +0200 Subject: [PATCH] Remove symlink before creating new ones --- pkg/local.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/local.go b/pkg/local.go index 06c2dd1..6406012 100644 --- a/pkg/local.go +++ b/pkg/local.go @@ -21,6 +21,7 @@ import ( "path/filepath" "github.com/jsonnet-bundler/jsonnet-bundler/spec" + "github.com/pkg/errors" ) type LocalPackage struct { @@ -39,7 +40,14 @@ func (p *LocalPackage) Install(ctx context.Context, name, dir, version string) ( return "", fmt.Errorf("failed to get current working directory: %v", err) } - err = os.Symlink(filepath.Join(wd, p.Source.Directory), filepath.Join(wd, dir, name)) + destPath := filepath.Join(dir, name) + + err = os.RemoveAll(destPath) + if err != nil { + return "", errors.Wrap(err, "failed to clean previous destination path") + } + + err = os.Symlink(filepath.Join(wd, p.Source.Directory), filepath.Join(wd, destPath)) if err != nil { return "", fmt.Errorf("failed to create symlink for local dependency: %v", err) }