You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.0 KiB
Kotlin

package me.eater.hefbrug.dsl.context.impl
import me.eater.hefbrug.definition.impl.PackageDefinition
import me.eater.hefbrug.dsl.context.DefinitionContext
import me.eater.hefbrug.dsl.context.Emitter
import me.eater.hefbrug.dsl.context.EmitterContext
import me.eater.hefbrug.state.ExistenceStatus
import me.eater.hefbrug.state.impl.PackageState
class PackageContext(definition: PackageDefinition) : DefinitionContext<PackageState>(definition),
Emitter by EmitterContext() {
val id: String
get() = state.id
fun upgrade(upgrade: Boolean) {
state.upgrade = upgrade
}
var ensure by proxy(state::status)
val upgraded: Unit
get() {
state.upgrade = true
}
val held: Unit
get() {
state.upgrade = false
}
val installed: Unit
get() {
state.status = ExistenceStatus.Present
}
val absent: Unit
get() {
state.status = ExistenceStatus.Absent
}
var name: String by proxy(state::name)
}