util.go

 1package backend
 2
 3import (
 4	"fmt"
 5	"os"
 6	"path/filepath"
 7)
 8
 9func createDotCrushDir(dir string) error {
10	if err := os.MkdirAll(dir, 0o700); err != nil {
11		return fmt.Errorf("failed to create data directory: %q %w", dir, err)
12	}
13
14	gitIgnorePath := filepath.Join(dir, ".gitignore")
15	if _, err := os.Stat(gitIgnorePath); os.IsNotExist(err) {
16		if err := os.WriteFile(gitIgnorePath, []byte("*\n"), 0o644); err != nil {
17			return fmt.Errorf("failed to create .gitignore file: %q %w", gitIgnorePath, err)
18		}
19	}
20
21	return nil
22}