mirror of
https://github.com/DeBrosOfficial/network.git
synced 2026-01-30 22:43:04 +00:00
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package migrate
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
// Validator checks if migration is needed
|
|
type Validator struct {
|
|
oramaDir string
|
|
}
|
|
|
|
// NewValidator creates a new Validator
|
|
func NewValidator(oramaDir string) *Validator {
|
|
return &Validator{oramaDir: oramaDir}
|
|
}
|
|
|
|
// CheckNeedsMigration checks if migration is needed
|
|
func (v *Validator) CheckNeedsMigration() bool {
|
|
oldDataDirs := []string{
|
|
filepath.Join(v.oramaDir, "data", "node-1"),
|
|
filepath.Join(v.oramaDir, "data", "node"),
|
|
}
|
|
|
|
oldServices := []string{
|
|
"debros-ipfs",
|
|
"debros-ipfs-cluster",
|
|
"debros-node",
|
|
}
|
|
|
|
oldConfigs := []string{
|
|
filepath.Join(v.oramaDir, "configs", "bootstrap.yaml"),
|
|
}
|
|
|
|
var needsMigration bool
|
|
|
|
fmt.Printf("Checking data directories:\n")
|
|
for _, dir := range oldDataDirs {
|
|
if _, err := os.Stat(dir); err == nil {
|
|
fmt.Printf(" ⚠️ Found old directory: %s\n", dir)
|
|
needsMigration = true
|
|
}
|
|
}
|
|
|
|
fmt.Printf("\nChecking services:\n")
|
|
for _, svc := range oldServices {
|
|
unitPath := filepath.Join("/etc/systemd/system", svc+".service")
|
|
if _, err := os.Stat(unitPath); err == nil {
|
|
fmt.Printf(" ⚠️ Found old service: %s\n", svc)
|
|
needsMigration = true
|
|
}
|
|
}
|
|
|
|
fmt.Printf("\nChecking configs:\n")
|
|
for _, cfg := range oldConfigs {
|
|
if _, err := os.Stat(cfg); err == nil {
|
|
fmt.Printf(" ⚠️ Found old config: %s\n", cfg)
|
|
needsMigration = true
|
|
}
|
|
}
|
|
|
|
return needsMigration
|
|
}
|