fix: properly handle directory replacement

The previous version _also_ deleted the temp working dir, causing issues with subsequent directory access.
This commit is contained in:
Jose Diaz-Gonzalez
2021-07-10 00:48:47 -04:00
parent fda75cbaa5
commit 377ca5ca22
4 changed files with 36 additions and 8 deletions

View File

@@ -8,6 +8,7 @@ import (
"strings"
"github.com/dokku/dokku/plugins/common"
"github.com/otiai10/copy"
)
// TriggerBuilderDetect outputs a manually selected builder for the app
@@ -42,19 +43,19 @@ func TriggerCorePostExtract(appName string, sourceWorkDir string) error {
return fmt.Errorf("Unable to create temporary working directory: %v", err.Error())
}
if err := os.RemoveAll(tmpWorkDir); err != nil {
if err := removeAllContents(tmpWorkDir); err != nil {
return fmt.Errorf("Unable to clear out temporary working directory for rewrite: %v", err.Error())
}
if err := os.Rename(newSourceWorkDir, tmpWorkDir); err != nil {
if err := copy.Copy(newSourceWorkDir, tmpWorkDir); err != nil {
return fmt.Errorf("Unable to move build-dir to temporary working directory: %v", err.Error())
}
if err := os.RemoveAll(sourceWorkDir); err != nil {
if err := removeAllContents(sourceWorkDir); err != nil {
return fmt.Errorf("Unable to clear out sourcecode working directory for rewrite: %v", err.Error())
}
if err := os.Rename(tmpWorkDir, sourceWorkDir); err != nil {
if err := copy.Copy(tmpWorkDir, sourceWorkDir); err != nil {
return fmt.Errorf("Unable to move build-dir to sourcecode working directory: %v", err.Error())
}