summaryrefslogtreecommitdiff
path: root/pkg/gonf.go
blob: 5e02176621e80af2023653f5ca3a74a77f2ea706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package gonf

import (
	"log/slog"
	"os"
)

func EnableDebugLogs() {
	h := slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
		Level: slog.LevelDebug,
	})
	slog.SetDefault(slog.New(h))
}

func Resolve() (status Status) {
	for {
		// ----- Users -------------------------------------------------
		status = resolveUsers()
		switch status {
		case BROKEN:
			return BROKEN
		case REPAIRED:
			continue
		}
		// ----- Files -------------------------------------------------
		status = resolveFiles()
		switch status {
		case BROKEN:
			return BROKEN
		case REPAIRED:
			continue
		}
		// ----- Packages ----------------------------------------------
		status = resolvePackages()
		switch status {
		case BROKEN:
			return BROKEN
		case REPAIRED:
			continue
		}
		// ----- Services ----------------------------------------------
		status = resolveServices()
		switch status {
		case BROKEN:
			return BROKEN
		case REPAIRED:
			continue
		}
		// ----- Commands ----------------------------------------------
		status = resolveCommands()
		switch status {
		case BROKEN:
			return BROKEN
		case REPAIRED:
			continue
		}
		// ----- CustomPromises ----------------------------------------
		status = resolveCustomPromises()
		switch status {
		case BROKEN:
			return BROKEN
		case REPAIRED:
			continue
		}
		return
	}
}