File: README.md

package info (click to toggle)
golang-github-coredhcp-coredhcp 0.0.0%2Bgit.20250806.f7e98e4-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 460 kB
  • sloc: makefile: 8; sh: 6
file content (40 lines) | stat: -rw-r--r-- 1,788 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
## CoreDHCP Generator

`coredhcp-generator` is a tool used to build CoreDHCP with the plugins you want.

Why is it even needed? Go is a compiled language with no dynamic loading
support. In order to load a plugin, it has to be compiled in. We are happy to
provide a standard [main.go](/cmds/coredhcp/main.go), and at the same time we
don't want to include plugins that not everyone would use, otherwise the binary
size would grow without control.

You can use `coredhcp-generator` to generate a `main.go` that includes all the
plugins you wish. Just use it as follows:

```
$ ./coredhcp-generator --from core-plugins.txt
2019/11/21 23:32:04 Generating output file '/tmp/coredhcp547019106/coredhcp.go' with 7 plugin(s):
2019/11/21 23:32:04   1) github.com/coredhcp/coredhcp/plugins/file
2019/11/21 23:32:04   2) github.com/coredhcp/coredhcp/plugins/lease_time
2019/11/21 23:32:04   3) github.com/coredhcp/coredhcp/plugins/netmask
2019/11/21 23:32:04   4) github.com/coredhcp/coredhcp/plugins/range
2019/11/21 23:32:04   5) github.com/coredhcp/coredhcp/plugins/router
2019/11/21 23:32:04   6) github.com/coredhcp/coredhcp/plugins/server_id
2019/11/21 23:32:04   7) github.com/coredhcp/coredhcp/plugins/dns
2019/11/21 23:32:04 Generated file '/tmp/coredhcp547019106/coredhcp.go'. You can build it by running 'go build' in the output directory.
```

You can also specify the plugin list on the command line, or mix it with
`--from`:
```
$ ./coredhcp-generator --from core-plugins.txt \
    github.com/coredhcp/plugins/redis
```

Notice that it created a file called `coredhcp.go` in a temporary directory. You
can now `go build` that file and have your own custom CoreDHCP.

## Bugs

CoreDHCP uses Go versioned modules. The generated file does not do that yet. We
will add this feature soon.