main
6d86999 ยท 6 months ago 26 commits
 1package app
 2
 3import (
 4	"github.com/The-Robin-Hood/ufWall/internal/sections/policy"
 5	"github.com/The-Robin-Hood/ufWall/internal/sections/rules"
 6	"github.com/The-Robin-Hood/ufWall/internal/sections/stats"
 7	"github.com/The-Robin-Hood/ufWall/internal/ufw"
 8	"github.com/The-Robin-Hood/ufWall/internal/ui"
 9)
10
11type model struct {
12	stats     ufw.Stats
13	policy    ufw.Policy
14	rules     []ufw.Rule // (kept for backward compat)
15	ipv4Rules []ufw.Rule
16	ipv6Rules []ufw.Rule
17	err       error
18
19	activeSection int
20
21	width  int
22	height int
23	styles ui.Styles
24
25	statsSection  stats.Model
26	policySection policy.Model
27	rulesSection  rules.Model
28}
29
30func InitialModel() model {
31	data := ufw.GetUFWData()
32	styles := ui.NewStyles()
33	return model{
34		stats:     data.Stats,
35		rules:     data.Rules,
36		ipv4Rules: data.IPv4Rules,
37		ipv6Rules: data.IPv6Rules,
38		policy:    data.Policy,
39
40		styles: styles,
41		width:  87,
42		height: 30,
43
44		statsSection:  stats.New(styles),
45		policySection: policy.New(styles),
46		rulesSection:  rules.New(styles),
47	}
48}