Skip to content

Commit 9a7d132

Browse files
committed
fix: create tmp directory in working directory
1 parent 171a770 commit 9a7d132

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

pkg/commands/template/upgrade.go

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -145,18 +145,34 @@ func createUpgradeCommand(
145145
return fmt.Errorf("failed to get current working directory: %w", err)
146146
}
147147

148-
// Create temporary directory for cloning the template
149-
tempDir, err := os.MkdirTemp("", "devkit-template-upgrade-*")
150-
if err != nil {
151-
return fmt.Errorf("failed to create temporary directory: %w", err)
148+
// Ensure parent exists
149+
tempParent := filepath.Join(absProjectPath, "temp_external")
150+
if err := os.MkdirAll(tempParent, 0o755); err != nil {
151+
return fmt.Errorf("failed to create %s: %w", tempParent, err)
152152
}
153-
defer os.RemoveAll(tempDir) // Clean up on exit
154153

155-
tempCacheDir, err := os.MkdirTemp("", "devkit-template-cache-*")
154+
// Create run-specific temp dir inside tempParent
155+
tempDir, err := os.MkdirTemp(tempParent, ".tmp-devkit-template-upgrade-*")
156156
if err != nil {
157-
return fmt.Errorf("failed to create temporary cache directory: %w", err)
157+
return fmt.Errorf("failed to create temporary directory: %w", err)
158158
}
159-
defer os.RemoveAll(tempCacheDir) // Clean up on exit
159+
160+
// Remove tempParent if it is empty after tempDir cleanup
161+
defer func() {
162+
err = os.RemoveAll(tempDir)
163+
if err != nil {
164+
logger.Warn("failed to remove %s: %v\n", tempDir, err)
165+
}
166+
entries, err := os.ReadDir(tempParent)
167+
if err != nil {
168+
logger.Warn("could not read %s: %v\n", tempParent, err)
169+
}
170+
if len(entries) == 0 {
171+
if err := os.Remove(tempParent); err != nil {
172+
logger.Warn("failed to remove %s: %v\n", tempParent, err)
173+
}
174+
}
175+
}()
160176

161177
logger.Info("Upgrading project template:")
162178
logger.Info(" Project: %s", projectName)

0 commit comments

Comments
 (0)