summaryrefslogtreecommitdiff
path: root/stdlib/os/debian/debian.go
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/os/debian/debian.go')
-rw-r--r--stdlib/os/debian/debian.go38
1 files changed, 38 insertions, 0 deletions
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()
+}