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.

21 lines
805 B
Kotlin

package me.eater.hefbrug.collector.impl
import me.eater.hefbrug.collector.AbstractCollector
import me.eater.hefbrug.executor.ExecutionContext
import me.eater.hefbrug.definition.impl.PackageDefinition
import me.eater.hefbrug.state.ExistenceStatus
import me.eater.hefbrug.state.impl.PackageState
class PackageCollector(context: ExecutionContext) : AbstractCollector<PackageState, PackageDefinition>(context) {
override suspend fun collect(definition: PackageDefinition): PackageState {
val pm = context.getPackageManager()
return PackageState(definition.id).apply {
name = definition.state.name
status = if (pm.isInstalled(definition.state.name))
ExistenceStatus.Present
else
ExistenceStatus.Absent
}
}
}