1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00
Files
stackexchange-dnscontrol/docs/_functions/global/require.md
2019-05-23 09:26:40 -04:00

1.5 KiB

name, parameters
name parameters
require
path

require(...) behaves similarly to its equivalent in node.js. You can use it to split your configuration across multiple files. If the path starts with a ., it is calculated relative to the current file. For example:

{% include startExample.html %} {% highlight js %}

// dnsconfig.js require('kubernetes/clusters.js');

D("mydomain.net", REG, PROVIDER, IncludeKubernetes() );

{%endhighlight%}

{% highlight js %}

// kubernetes/clusters.js require('./clusters/prod.js'); require('./clusters/dev.js');

function IncludeKubernetes() { return [includeK8Sprod(), includeK8Sdev()]; }

{%endhighlight%}

{% highlight js %}

// kubernetes/clusters/prod.js function includeK8Sprod() { return [ /* ... */ ]; }

{%endhighlight%}

{% highlight js %}

// kubernetes/clusters/dev.js function includeK8Sdev() { return [ /* ... */ ]; }

{%endhighlight%} {% include endExample.html %}

You can also use it to require json files and initialize variables with it: For Example:

{% include startExample.html %} {% highlight js %}

// dnsconfig.js var domains = require('./domain-ip-map.json')

for (var domain in domains) { D(domain, REG, PROVIDER, A("@", domains[domain]) ); }

{%endhighlight%}

{%highlight js %} // domain-ip-map.json { "mydomain.net": "1.1.1.1", "myotherdomain.org": "5.5.5.5" } {%endhighlight} {% include endExample.html %}