29 lines
579 B
Go
29 lines
579 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
func setupDataDir() (string, error) {
|
|
var dataDir string
|
|
if os.Getenv("DATA_DIR") == "" {
|
|
dataDir = filepath.Join(".", "data")
|
|
} else {
|
|
dataDir = filepath.Join(".", os.Getenv("DATA_DIR"))
|
|
}
|
|
|
|
if !filepath.IsLocal(dataDir) {
|
|
return "", fmt.Errorf("directory '%s' is not valid or not local", dataDir)
|
|
}
|
|
|
|
if _, err := os.Stat(dataDir); os.IsNotExist(err) {
|
|
err := os.Mkdir(dataDir, 0o755)
|
|
if err != nil {
|
|
return "", fmt.Errorf("cannot create '%s' directory: %w", dataDir, err)
|
|
}
|
|
}
|
|
return dataDir, nil
|
|
}
|