genode-ehmry/runtimes/noux-system/pkg.dhall

118 lines
3.3 KiB
Plaintext

let Genode = env:DHALL_GENODE
let Prelude = Genode.Prelude
let XML = Prelude.XML
let service = λ(s : Text) → { service = s, label = None Text }
let serviceLabel = λ(s : Text) → λ(l : Text) → { service = s, label = Some l }
let fsService = λ(label : Text) → serviceLabel "file_system" label
let Noux = Genode.Components.Noux
let Terminal = Genode.Components.Terminal
let terminal =
Terminal.construct
( Terminal.defaults
⫽ { routes =
{ fontsFs =
Genode.Route.parent (Some "fonts")
, nitpicker =
Genode.Route.parent (None Text)
, timer =
Genode.Route.parent (None Text)
}
}
)
let nouxBase =
Noux.construct
( Noux.defaults
⫽ { config =
XML.text
''
<config>
<fstab>
<tar name="bash-minimal.tar" />
<tar name="coreutils-minimal.tar" />
<tar name="vim-minimal.tar" />
<dir name="dev"> <zero/> <null/> </dir>
<dir name="rw"> <fs label="target"/> </dir>
<dir name="report"> <fs label="report"/> </dir>
<dir name="config"> <fs label="config"/> </dir>
<dir name="tmp"> <ram /> </dir>
</fstab>
<start name="/bin/bash">
<env name="TERM" value="screen" />
<env name="PS1" value="noux:$PWD " />
</start>
</config>
''
, resources =
{ caps = 512, ram = Genode.units.MiB 64 }
, routes =
{ timer = Genode.Route.parent (None Text) }
}
)
let parentFs =
λ(label : Text)
→ Genode.ServiceRoute.parent "File_system" (Some label) (Some label)
let noux =
nouxBase
⫽ { exitPropagate =
True
, routes =
nouxBase.routes
# [ Genode.ServiceRoute.child
"Terminal"
"terminal"
(None Text)
(None Text)
, parentFs "target"
, parentFs "config"
, parentFs "report"
]
}
let initConfig =
Genode.Init.defaults ⫽ { verbose = True, children = [ terminal, noux ] }
in { indexInfo =
"Noux administration environment"
, runtime =
Genode.Runtime.defaults
⫽ { resources =
Genode.Init.sumResources initConfig
, requires =
[ fsService "config"
, fsService "report"
, fsService "target"
, fsService "fonts"
, service "nitpicker"
, serviceLabel "report" "clipboard"
, serviceLabel "rom" "clipboard"
]
, roms =
[ "libc.lib.so"
, "libm.lib.so"
, "init"
, "terminal"
, "noux"
, "libc_noux.lib.so"
, "posix.lib.so"
, "ncurses.lib.so"
, "bash-minimal.tar"
, "coreutils-minimal.tar"
, "vim-minimal.tar"
, "vfs.lib.so"
]
, config =
Genode.Init.toXML initConfig
}
}