diff options
-rw-r--r-- | pkg/gonf.go | 1 | ||||
-rw-r--r-- | pkg/packages.go | 4 | ||||
-rw-r--r-- | stdlib/os/debian/apt.go | 29 | ||||
-rw-r--r-- | stdlib/os/debian/debian.go | 38 |
4 files changed, 39 insertions, 33 deletions
diff --git a/pkg/gonf.go b/pkg/gonf.go index 7a18c91..88edf9c 100644 --- a/pkg/gonf.go +++ b/pkg/gonf.go @@ -28,7 +28,6 @@ func Resolve() (status Status) { case BROKEN: return BROKEN case REPAIRED: - packages_list_function() continue } // ----- Services ---------------------------------------------- diff --git a/pkg/packages.go b/pkg/packages.go index 75346eb..fdce87c 100644 --- a/pkg/packages.go +++ b/pkg/packages.go @@ -7,7 +7,6 @@ var packages []*PackagePromise // packages management functions var packages_install_function func([]string) (Status, []string) -var packages_list_function func() var packages_update_function *CommandPromise // ----- Init ------------------------------------------------------------------ @@ -16,9 +15,8 @@ func init() { } // ----- Public ---------------------------------------------------------------- -func SetPackagesConfiguration(install func([]string) (Status, []string), list func(), update *CommandPromise) { +func SetPackagesConfiguration(install func([]string) (Status, []string), update *CommandPromise) { packages_install_function = install - packages_list_function = list packages_update_function = update } diff --git a/stdlib/os/debian/apt.go b/stdlib/os/debian/apt.go index 5b0b54f..3386f20 100644 --- a/stdlib/os/debian/apt.go +++ b/stdlib/os/debian/apt.go @@ -3,14 +3,12 @@ package debian import ( "bufio" "bytes" - _ "embed" "log/slog" "os" "os/exec" "strings" gonf "git.adyxax.org/adyxax/gonf/v2/pkg" - "git.adyxax.org/adyxax/gonf/v2/stdlib/os/systemd" ) var packages map[string]string @@ -19,33 +17,6 @@ func init() { packages_list() } -//go:embed apt-norecommends -var apt_norecommends []byte - -//go:embed sources.list -var sources_list []byte - -func Promise() { - rootDir := gonf.ModeUserGroup(0755, "root", "root") - rootRO := gonf.ModeUserGroup(0444, "root", "root") - gonf.Default("debian-release", "stable") - gonf.AppendVariable("debian-extra-sources", "# Extra sources") - apt_update := gonf.Command("apt-get", "update", "-qq") - gonf.File("/etc/apt/sources.list"). - Permissions(rootRO). - Template(sources_list). - Promise(). - IfRepaired(apt_update) - gonf.File("/etc/apt/apt.conf.d/99_norecommends"). - DirectoriesPermissions(rootDir). - Permissions(rootRO). - Template(apt_norecommends). - Promise() - gonf.SetPackagesConfiguration(packages_install, packages_list, apt_update) - gonf.Service("opensmtpd").State("enabled", "started").Promise() - systemd.Promise() -} - func packages_install(names []string) (gonf.Status, []string) { gonf.FilterSlice(&names, func(n string) bool { _, ok := packages[n] diff --git a/stdlib/os/debian/debian.go b/stdlib/os/debian/debian.go new file mode 100644 index 0000000..9954088 --- /dev/null +++ b/stdlib/os/debian/debian.go @@ -0,0 +1,38 @@ +package debian + +import ( + _ "embed" + "git.adyxax.org/adyxax/gonf/v2/pkg" + "git.adyxax.org/adyxax/gonf/v2/stdlib/os/linux" + "git.adyxax.org/adyxax/gonf/v2/stdlib/os/systemd" +) + +//go:embed apt-norecommends +var apt_norecommends []byte + +//go:embed sources.list +var sources_list []byte + +func Promise() { + // ----- gonf -------------------------------------------------------------- + apt_update := gonf.Command("apt-get", "update", "-qq") + gonf.SetPackagesConfiguration(packages_install, apt_update) + gonf.SetUsersConfiguration(linux.Useradd) + // ----- systemd ----------------------------------------------------------- + systemd.Promise() + // ----- apt --------------------------------------------------------------- + rootDir := gonf.ModeUserGroup(0755, "root", "root") + rootRO := gonf.ModeUserGroup(0444, "root", "root") + gonf.Default("debian-release", "stable") + gonf.AppendVariable("debian-extra-sources", "# Extra sources") + gonf.File("/etc/apt/sources.list"). + Permissions(rootRO). + Template(sources_list). + Promise(). + IfRepaired(apt_update) + gonf.File("/etc/apt/apt.conf.d/99_norecommends"). + DirectoriesPermissions(rootDir). + Permissions(rootRO). + Contents(apt_norecommends). + Promise() +} |