From 5d01fc5df6f95194b2dc079714295b3e0714990b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20N=C3=B8rgaard?= Date: Wed, 3 Oct 2018 11:39:08 +0200 Subject: [PATCH 1/4] dont cut everything after and equals sign --- pkg/dockerfile/buildargs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/dockerfile/buildargs.go b/pkg/dockerfile/buildargs.go index bc393f31f..981357e1c 100644 --- a/pkg/dockerfile/buildargs.go +++ b/pkg/dockerfile/buildargs.go @@ -33,7 +33,7 @@ func NewBuildArgs(args []string) *BuildArgs { if len(s) == 1 { argsFromOptions[s[0]] = nil } else { - argsFromOptions[s[0]] = &s[1] + argsFromOptions[s[0]] = &strings.Join(s[1:], "=") } } return &BuildArgs{ From 18ce0202c2bd160a78b1d49f90974950768fa84e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20N=C3=B8rgaard?= Date: Wed, 3 Oct 2018 11:53:12 +0200 Subject: [PATCH 2/4] fix finding address of function return --- pkg/dockerfile/buildargs.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/dockerfile/buildargs.go b/pkg/dockerfile/buildargs.go index 981357e1c..6e3bd5a72 100644 --- a/pkg/dockerfile/buildargs.go +++ b/pkg/dockerfile/buildargs.go @@ -33,7 +33,8 @@ func NewBuildArgs(args []string) *BuildArgs { if len(s) == 1 { argsFromOptions[s[0]] = nil } else { - argsFromOptions[s[0]] = &strings.Join(s[1:], "=") + s := strings.Join(s[1:], "=") + argsFromOptions[s[0]] = &s } } return &BuildArgs{ From 261ed7640502110a9b0974d16c89d8fdd25e8ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20N=C3=B8rgaard?= Date: Wed, 3 Oct 2018 12:04:43 +0200 Subject: [PATCH 3/4] fix variable collision --- pkg/dockerfile/buildargs.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/dockerfile/buildargs.go b/pkg/dockerfile/buildargs.go index 6e3bd5a72..4f472e782 100644 --- a/pkg/dockerfile/buildargs.go +++ b/pkg/dockerfile/buildargs.go @@ -33,8 +33,8 @@ func NewBuildArgs(args []string) *BuildArgs { if len(s) == 1 { argsFromOptions[s[0]] = nil } else { - s := strings.Join(s[1:], "=") - argsFromOptions[s[0]] = &s + val := strings.Join(s[1:], "=") + argsFromOptions[s[0]] = &val } } return &BuildArgs{ From 038dcc19587525963e659223fc8aed9a7f157ec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20N=C3=B8rgaard?= Date: Wed, 3 Oct 2018 14:23:53 +0200 Subject: [PATCH 4/4] use strings.SplitN to avoid the join --- pkg/dockerfile/buildargs.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/dockerfile/buildargs.go b/pkg/dockerfile/buildargs.go index 4f472e782..b929528ef 100644 --- a/pkg/dockerfile/buildargs.go +++ b/pkg/dockerfile/buildargs.go @@ -29,12 +29,11 @@ type BuildArgs struct { func NewBuildArgs(args []string) *BuildArgs { argsFromOptions := make(map[string]*string) for _, a := range args { - s := strings.Split(a, "=") + s := strings.SplitN(a, "=", 2) if len(s) == 1 { argsFromOptions[s[0]] = nil } else { - val := strings.Join(s[1:], "=") - argsFromOptions[s[0]] = &val + argsFromOptions[s[0]] = &s[1] } } return &BuildArgs{