pmcf
Version:
Poor mans configuration management
229 lines (148 loc) • 7.75 kB
Markdown
[](https://www.npmjs.com/package/pmcf)
[](https://spdx.org/licenses/0BSD.html)
[](https://typescriptlang.org)
[](https://bundlejs.com/?q=pmcf)
[](https://npmjs.org/package/pmcf)
[](https://github.com/arlac77/pmcf/issues)
[](https://actions-badge.atrox.dev/arlac77/pmcf/goto)
[](https://github.com/prettier/prettier)
[](http://commitizen.github.io/cz-cli/)
[](https://snyk.io/test/github/arlac77/pmcf)
# pmcf
## Poor mans configuration management
Generates system packages from config blueprint.
supported linux derivates:
* arch linux
* debian
* rpm based systems
generates config packages for:
* systemd
* networkd
* timesyncd
* resolverd
* kea
* bind
* mosquitto
* influxdb
* iwd
* chrony
# API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### Table of Contents
* [Base](#base)
* [Parameters](#parameters)
* [extends](#extends)
* [findService](#findservice)
* [Parameters](#parameters-1)
* [PortEndpoint](#portendpoint)
* [Parameters](#parameters-2)
* [port](#port)
* [socketAddress](#socketaddress)
* [HTTPEndpoint](#httpendpoint)
* [Parameters](#parameters-3)
* [port](#port-1)
* [SkeletonNetworkInterface](#skeletonnetworkinterface)
* [networkAddresses](#networkaddresses)
* [Parameters](#parameters-4)
* [NetworkAddress](#networkaddress)
* [Parameters](#parameters-5)
* [subnet](#subnet)
* [networkInterface](#networkinterface)
* [address](#address)
* [addresses](#addresses)
* [Parameters](#parameters-6)
* [cidrAddresses](#cidraddresses)
* [Parameters](#parameters-7)
* [serviceEndpoints](#serviceendpoints)
* [Parameters](#parameters-8)
* [sectionLines](#sectionlines)
* [Parameters](#parameters-9)
* [asArray](#asarray)
* [Parameters](#parameters-10)
* [asIterator](#asiterator)
* [Parameters](#parameters-11)
## Base
### Parameters
* `owner`  
* `data`  
### extends
Returns **Iterable<[Base](#base)>** 
### findService
#### Parameters
* `filter` **any** 
Returns **any** service with the highest priority
## PortEndpoint
**Extends BaseEndpoint**
Endpoint with an ip port
### Parameters
* `service`  
* `data`  
### port
Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** 
### socketAddress
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
## HTTPEndpoint
**Extends BaseEndpoint**
Endpoint based on http
### Parameters
* `service`  
* `address`  
* `data`  
### port
Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** 
## SkeletonNetworkInterface
**Extends ServiceOwner**
### networkAddresses
#### Parameters
* `filter` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `n=>true`)
Returns **Iterable<[NetworkAddress](#networkaddress)>** 
## NetworkAddress
### Parameters
* `networkInterface` **NetworkInterface** 
* `address` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [Uint8Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) | [Uint16Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array))** 
* `subnet` **Subnet** 
### subnet
Type: Subnet
### networkInterface
Type: NetworkInterface
### address
Type: ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [Uint8Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) | [Uint16Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array))
## addresses
### Parameters
* `sources` **Iterable<(Owner | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))>** 
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `options.aggregate` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** 
* `options.filter` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
Returns **Iterable<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** addresses
## cidrAddresses
### Parameters
* `networkAddresses` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[NetworkAddress](#networkaddress)>** 
Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** 
## serviceEndpoints
### Parameters
* `sources` **any** 
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** (optional, default `{}`)
* `options.services` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** filter for services
* `options.endpoints` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** filter for endpoints
* `options.select` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** mapper from Endpoint into result
* `options.limit` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** upper limit of # result items
* `options.join` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** join result(s) into a string
Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | any)** 
## sectionLines
### Parameters
* `sectionName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
* `values` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** 
## asArray
### Parameters
* `value` **any** 
Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\<any>** 
## asIterator
### Parameters
* `value` **any** 
Returns **Iterable\<any>** 
# install
With [npm](http://npmjs.org) do:
```shell
npm install pmcf
```