UNPKG

pmcf

Version:

Poor mans configuration management

60 lines (48 loc) 1.4 kB
import { writeFile, mkdir } from "node:fs/promises"; import { join } from "node:path"; import { addType } from "../types.mjs"; import { addHook } from "../hooks.mjs"; import { NetworkInterfaceTypeDefinition } from "./network-interface.mjs"; import { EthernetNetworkInterface, EthernetNetworkInterfaceTypeDefinition } from "./ethernet.mjs"; const WLANNetworkInterfaceTypeDefinition = { name: "wlan", specializationOf: NetworkInterfaceTypeDefinition, owners: EthernetNetworkInterfaceTypeDefinition.owners, extends: EthernetNetworkInterfaceTypeDefinition, priority: 0.1, properties: {} }; export class WLANNetworkInterface extends EthernetNetworkInterface { _ssid; _psk; static { addType(this); } static get typeDefinition() { return WLANNetworkInterfaceTypeDefinition; } get kind() { return WLANNetworkInterfaceTypeDefinition.name; } set ssid(value) { this._ssid = value; } get ssid() { return this.extendedProperty("_ssid") ?? this.network?.ssid; } set psk(value) { this._psk = value; } get psk() { return this.extendedProperty("_psk") ?? this.network?.psk; } async systemdDefinitions(packageData) { await super.systemdDefinitions(packageData); const d = join(packageData.dir, "var/lib/iwd/"); await mkdir(d, { recursive: true }); packageData.properties.requires.push("iwd", "impala"); } }