file_layout.go 1.2 KB
Newer Older
1
package db
2 3 4 5 6

import (
	"fmt"
	"os"
	"path/filepath"
7 8

	"github.com/ethereum-optimism/optimism/op-supervisor/supervisor/types"
9 10
)

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
func prepLocalDerivedFromDBPath(chainID types.ChainID, datadir string) (string, error) {
	dir, err := prepChainDir(chainID, datadir)
	if err != nil {
		return "", err
	}
	return filepath.Join(dir, "local_safe.db"), nil
}

func prepCrossDerivedFromDBPath(chainID types.ChainID, datadir string) (string, error) {
	dir, err := prepChainDir(chainID, datadir)
	if err != nil {
		return "", err
	}
	return filepath.Join(dir, "cross_safe.db"), nil
}

27
func prepLogDBPath(chainID types.ChainID, datadir string) (string, error) {
28 29 30 31 32 33 34
	dir, err := prepChainDir(chainID, datadir)
	if err != nil {
		return "", err
	}
	return filepath.Join(dir, "log.db"), nil
}

35 36
func prepChainDir(chainID types.ChainID, datadir string) (string, error) {
	dir := filepath.Join(datadir, chainID.String())
37 38 39 40 41
	if err := os.MkdirAll(dir, 0755); err != nil {
		return "", fmt.Errorf("failed to create chain directory %v: %w", dir, err)
	}
	return dir, nil
}
42

43
func PrepDataDir(datadir string) error {
44 45 46 47 48
	if err := os.MkdirAll(datadir, 0755); err != nil {
		return fmt.Errorf("failed to create data directory %v: %w", datadir, err)
	}
	return nil
}