112 lines
4.4 KiB
Kotlin
112 lines
4.4 KiB
Kotlin
import moe.rosa.planterette.dsl.*
|
|
import moe.rosa.planterette.dsl.DSLEnablements.*
|
|
import kotlin.test.Test
|
|
import kotlin.test.assertEquals
|
|
|
|
class DSLTest {
|
|
companion object {
|
|
val HAKUREI_DSL_TEST = planterette {
|
|
hakurei("org.chromium.Chromium") {
|
|
executable("/run/current-system/sw/bin/chromium",
|
|
"chromium",
|
|
"--ignore-gpu-blocklist",
|
|
"--disable-smooth-scrolling",
|
|
"--enable-features=UseOzonePlatform",
|
|
"--ozone-platform=wayland"
|
|
)
|
|
enable(Wayland, DBus, Pulse)
|
|
dbus {
|
|
session {
|
|
talk("org.freedesktop.Notifications",
|
|
"org.freedesktop.FileManager1",
|
|
"org.freedesktop.ScreenSaver",
|
|
"org.freedesktop.secrets",
|
|
"org.kde.kwalletd5",
|
|
"org.kde.kwalletd6",
|
|
"org.gnome.SessionManager")
|
|
own("org.chromium.Chromium.*",
|
|
"org.mpris.MediaPlayer2.org.chromium.Chromium.*",
|
|
"org.mpris.MediaPlayer2.chromium.*")
|
|
call("org.freedesktop.portal.*" to "*")
|
|
broadcast("org.freedesktop.portal.*" to "@/org/freedesktop/portal/*")
|
|
filter()
|
|
}
|
|
system {
|
|
talk("org.bluez",
|
|
"org.freedesktop.Avahi",
|
|
"org.freedesktop.UPower")
|
|
filter()
|
|
}
|
|
}
|
|
username("chronos")
|
|
shell("/run/current-system/sw/bin/zsh")
|
|
home("/data/data/org.chromium.Chromium")
|
|
extraPerms(
|
|
perm("/var/lib/hakurei/u0") {
|
|
ensure()
|
|
execute()
|
|
},
|
|
perm("/var/lib/hakurei/u0/org.chromium.Chromium", rwx = "rwx")
|
|
)
|
|
identity(9)
|
|
groups("video",
|
|
"dialout",
|
|
"plugdev")
|
|
container {
|
|
hostname("localhost")
|
|
noTimeout()
|
|
seccompCompat()
|
|
devel()
|
|
userns()
|
|
hostNet()
|
|
hostAbstract()
|
|
tty()
|
|
multiarch()
|
|
env("GOOGLE_API_KEY" to "AIzaSyBHDrl33hwRp4rMQY0ziRbj8K9LPA6vUCY",
|
|
"GOOGLE_DEFAULT_CLIENT_ID" to "77185425430.apps.googleusercontent.com",
|
|
"GOOGLE_DEFAULT_CLIENT_SECRET" to "OTJgUOQcT7lO7GsGZq2G4IlT")
|
|
mapRealUid()
|
|
device()
|
|
filesystem {
|
|
bind("/var/lib/hakurei/base/org.debian" to "/") {
|
|
write()
|
|
special()
|
|
}
|
|
bind("/etc/" to "/etc/") {
|
|
special()
|
|
}
|
|
ephemeral("/tmp/") {
|
|
write()
|
|
perm(493)
|
|
}
|
|
overlay("/nix/store") {
|
|
lower("/mnt-root/nix/.ro-store")
|
|
upper("/mnt-root/nix/.rw-store/upper")
|
|
work("/mnt-root/nix/.rw-store/work")
|
|
}
|
|
bind("/nix/store")
|
|
link("/run/current-system") {
|
|
dereference()
|
|
}
|
|
link("/run/opengl-driver") {
|
|
dereference()
|
|
}
|
|
bind("/var/lib/hakurei/u0/org.chromium.Chromium" to "/data/data/org.chromium.Chromium") {
|
|
write()
|
|
ensure()
|
|
}
|
|
bind("/dev/dri") {
|
|
device()
|
|
optional()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@Test
|
|
fun hakureiDSLTest() {
|
|
assertEquals(HakureiTest.TEMPLATE_DATA, HAKUREI_DSL_TEST.hakurei)
|
|
}
|
|
}
|