summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--pkg/gonf.go1
-rw-r--r--pkg/packages.go4
-rw-r--r--stdlib/os/debian/apt.go29
-rw-r--r--stdlib/os/debian/debian.go38
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()
+}