Skip to content

Commit 1b558dc

Browse files
committed
Merged release/v1.16.4 into master
2 parents dce5f9f + a1e711b commit 1b558dc

File tree

3 files changed

+31
-28
lines changed

3 files changed

+31
-28
lines changed

Rockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ ENV CGO_ENABLED=0
3939

4040
RUN go get -v github.com/tools/godep
4141
RUN go get -u github.com/golang/lint/golint
42+
RUN go get github.com/ahmetb/govvv
4243

4344
RUN mkdir -p /go/src/github.com/aacebedo/dnsdock
4445
WORKDIR /go/src/github.com/aacebedo/dnsdock
@@ -60,7 +61,7 @@ RUN godep restore
6061
ENV GOARCH={{$ARCH}}
6162
WORKDIR /go/src/github.com/aacebedo/dnsdock/src
6263
ATTACH sh
63-
RUN go build -o /tmp/output/dnsdock -ldflags "-X main.version=$(if version=$(git describe --contains HEAD 2>/dev/null); then echo $version; else echo "dev"; fi)"
64+
RUN govvv build -o /tmp/output/dnsdock
6465
RUN golint -set_exit_status
6566
{{if eq $ARCH "amd64"}}
6667
RUN go vet

src/core/cmdline.go

+26-25
Original file line numberDiff line numberDiff line change
@@ -15,38 +15,39 @@ import (
1515
"strconv"
1616
)
1717

18-
const (
19-
// VERSION dnsdock version
20-
VERSION = "1.16.1"
21-
)
22-
2318
// CommandLine structure handling parameter parsing
24-
type CommandLine struct{}
19+
type CommandLine struct{
20+
app *kingpin.Application
21+
}
22+
23+
func NewCommandLine(version string) (res *CommandLine) {
24+
res = &CommandLine{}
25+
res.app = kingpin.New("dnsdock", "Automatic DNS for docker containers.")
26+
res.app.Version(version)
27+
res.app.HelpFlag.Short('h')
28+
return
29+
}
2530

2631
// ParseParameters Parse parameters
2732
func (cmdline *CommandLine) ParseParameters(rawParams []string) (res *utils.Config, err error) {
2833
res = utils.NewConfig()
2934

30-
app := kingpin.New("dnsdock", "Automatic DNS for docker containers.")
31-
app.Version(VERSION)
32-
app.HelpFlag.Short('h')
33-
34-
nameservers := app.Flag("nameserver", "Comma separated list of DNS server(s) for unmatched requests").Default("8.8.8.8:53").Strings()
35-
dns := app.Flag("dns", "Listen DNS requests on this address").Default(res.DnsAddr).Short('d').String()
36-
http := app.Flag("http", "Listen HTTP requests on this address").Default(res.HttpAddr).Short('t').String()
37-
domain := app.Flag("domain", "Domain that is appended to all requests").Default(res.Domain.String()).String()
38-
environment := app.Flag("environment", "Optional context before domain suffix").Default("").String()
39-
docker := app.Flag("docker", "Path to the docker socket").Default(res.DockerHost).String()
40-
tlsverify := app.Flag("tlsverify", "Enable mTLS when connecting to docker").Default(strconv.FormatBool(res.TlsVerify)).Bool()
41-
tlscacert := app.Flag("tlscacert", "Path to CA certificate").Default(res.TlsCaCert).String()
42-
tlscert := app.Flag("tlscert", "Path to Client certificate").Default(res.TlsCert).String()
43-
tlskey := app.Flag("tlskey", "Path to client certificate private key").Default(res.TlsKey).String()
44-
ttl := app.Flag("ttl", "TTL for matched requests").Default(strconv.FormatInt(int64(res.Ttl), 10)).Int()
45-
createAlias := app.Flag("alias", "Automatically create an alias with just the container name.").Default(strconv.FormatBool(res.CreateAlias)).Bool()
46-
verbose := app.Flag("verbose", "Verbose mode.").Default(strconv.FormatBool(res.Verbose)).Short('v').Bool()
47-
quiet := app.Flag("quiet", "Quiet mode.").Default(strconv.FormatBool(res.Quiet)).Short('q').Bool()
35+
nameservers := cmdline.app.Flag("nameserver", "Comma separated list of DNS server(s) for unmatched requests").Default("8.8.8.8:53").Strings()
36+
dns := cmdline.app.Flag("dns", "Listen DNS requests on this address").Default(res.DnsAddr).Short('d').String()
37+
http := cmdline.app.Flag("http", "Listen HTTP requests on this address").Default(res.HttpAddr).Short('t').String()
38+
domain := cmdline.app.Flag("domain", "Domain that is appended to all requests").Default(res.Domain.String()).String()
39+
environment := cmdline.app.Flag("environment", "Optional context before domain suffix").Default("").String()
40+
docker := cmdline.app.Flag("docker", "Path to the docker socket").Default(res.DockerHost).String()
41+
tlsverify := cmdline.app.Flag("tlsverify", "Enable mTLS when connecting to docker").Default(strconv.FormatBool(res.TlsVerify)).Bool()
42+
tlscacert := cmdline.app.Flag("tlscacert", "Path to CA certificate").Default(res.TlsCaCert).String()
43+
tlscert := cmdline.app.Flag("tlscert", "Path to Client certificate").Default(res.TlsCert).String()
44+
tlskey := cmdline.app.Flag("tlskey", "Path to client certificate private key").Default(res.TlsKey).String()
45+
ttl := cmdline.app.Flag("ttl", "TTL for matched requests").Default(strconv.FormatInt(int64(res.Ttl), 10)).Int()
46+
createAlias := cmdline.app.Flag("alias", "Automatically create an alias with just the container name.").Default(strconv.FormatBool(res.CreateAlias)).Bool()
47+
verbose := cmdline.app.Flag("verbose", "Verbose mode.").Default(strconv.FormatBool(res.Verbose)).Short('v').Bool()
48+
quiet := cmdline.app.Flag("quiet", "Quiet mode.").Default(strconv.FormatBool(res.Quiet)).Short('q').Bool()
4849

49-
kingpin.MustParse(app.Parse(rawParams))
50+
kingpin.MustParse(cmdline.app.Parse(rawParams))
5051

5152
res.Verbose = *verbose
5253
res.Quiet = *quiet

src/main.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ import (
1818
"io/ioutil"
1919
"os"
2020
)
21-
21+
// GitSummary contains the version number
22+
var GitSummary string
2223
var logger = logging.MustGetLogger("dnsdock.main")
2324

2425
func main() {
2526

26-
var cmdLine core.CommandLine
27+
var cmdLine = core.NewCommandLine(GitSummary)
2728
config, err := cmdLine.ParseParameters(os.Args[1:])
2829
if err != nil {
2930
logger.Fatalf(err.Error())

0 commit comments

Comments
 (0)