Skip to content

Commit 59692cd

Browse files
FIX (directories): Do not remove temp firectory on temp files clean
1 parent ac78fe3 commit 59692cd

File tree

5 files changed

+45
-7
lines changed

5 files changed

+45
-7
lines changed

backend/internal/features/restores/usecases/postgresql/restore_backup_uc.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
pgtypes "postgresus-backend/internal/features/databases/databases/postgresql"
2121
"postgresus-backend/internal/features/restores/models"
2222
"postgresus-backend/internal/features/storages"
23+
files_utils "postgresus-backend/internal/util/files"
2324
"postgresus-backend/internal/util/tools"
2425

2526
"github.com/google/uuid"
@@ -172,6 +173,13 @@ func (uc *RestorePostgresqlBackupUsecase) downloadBackupToTempFile(
172173
backup *backups.Backup,
173174
storage *storages.Storage,
174175
) (string, func(), error) {
176+
err := files_utils.EnsureDirectories([]string{
177+
config.GetEnv().TempFolder,
178+
})
179+
if err != nil {
180+
return "", nil, fmt.Errorf("failed to ensure directories: %w", err)
181+
}
182+
175183
// Create temporary directory for backup data
176184
tempDir, err := os.MkdirTemp(config.GetEnv().TempFolder, "restore_"+uuid.New().String())
177185
if err != nil {

backend/internal/features/storages/models/local/model.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"os"
88
"path/filepath"
99
"postgresus-backend/internal/config"
10+
files_utils "postgresus-backend/internal/util/files"
1011

1112
"github.com/google/uuid"
1213
)
@@ -25,6 +26,13 @@ func (l *LocalStorage) TableName() string {
2526
func (l *LocalStorage) SaveFile(logger *slog.Logger, fileID uuid.UUID, file io.Reader) error {
2627
logger.Info("Starting to save file to local storage", "fileId", fileID.String())
2728

29+
err := files_utils.EnsureDirectories([]string{
30+
config.GetEnv().TempFolder,
31+
})
32+
if err != nil {
33+
return fmt.Errorf("failed to ensure directories: %w", err)
34+
}
35+
2836
tempFilePath := filepath.Join(config.GetEnv().TempFolder, fileID.String())
2937
logger.Debug("Creating temp file", "fileId", fileID.String(), "tempPath", tempFilePath)
3038

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,27 @@
11
package files_utils
22

3-
import "os"
3+
import (
4+
"fmt"
5+
"os"
6+
"path/filepath"
7+
)
48

59
func CleanFolder(folder string) error {
6-
return os.RemoveAll(folder)
10+
if _, err := os.Stat(folder); os.IsNotExist(err) {
11+
return nil
12+
}
13+
14+
entries, err := os.ReadDir(folder)
15+
if err != nil {
16+
return fmt.Errorf("failed to read directory %s: %w", folder, err)
17+
}
18+
19+
for _, entry := range entries {
20+
itemPath := filepath.Join(folder, entry.Name())
21+
if err := os.RemoveAll(itemPath); err != nil {
22+
return fmt.Errorf("failed to remove %s: %w", itemPath, err)
23+
}
24+
}
25+
26+
return nil
727
}

backend/internal/util/files/creator.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import (
66
)
77

88
func EnsureDirectories(directories []string) error {
9-
// Standard permissions for directories: owner
10-
// can read/write/execute, others can read/execute
119
const directoryPermissions = 0755
1210

1311
for _, directory := range directories {
14-
if err := os.MkdirAll(directory, directoryPermissions); err != nil {
15-
return fmt.Errorf("failed to create directory %s: %w", directory, err)
12+
if _, err := os.Stat(directory); os.IsNotExist(err) {
13+
if err := os.MkdirAll(directory, directoryPermissions); err != nil {
14+
return fmt.Errorf("failed to create directory %s: %w", directory, err)
15+
}
16+
} else if err != nil {
17+
return fmt.Errorf("failed to check directory %s: %w", directory, err)
1618
}
1719
}
1820

frontend/src/widgets/main/MainScreenComponent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ export const MainScreenComponent = () => {
153153
{selectedTab === 'storages' && <StoragesComponent contentHeight={contentHeight} />}
154154
{selectedTab === 'databases' && <DatabasesComponent contentHeight={contentHeight} />}
155155

156-
<div className="absolute bottom-1 left-1 mb-[0px] text-sm text-gray-400">
156+
<div className="absolute bottom-1 left-2 mb-[0px] text-sm text-gray-400">
157157
v{APP_VERSION}
158158
</div>
159159
</div>

0 commit comments

Comments
 (0)