From d15122d3d6b67d42617ed9950ce5273d0dba64fd Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Tue, 1 Nov 2016 19:20:55 +0100 Subject: Add Go 1.4 compatibility layer for raw64 Using raw64 will not work, but at least it will compile. --- internal/nametransform/names.go | 2 +- internal/nametransform/raw64_go1.4.go | 18 ++++++++++++++++++ internal/nametransform/raw64_go1.5.go | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 internal/nametransform/raw64_go1.4.go create mode 100644 internal/nametransform/raw64_go1.5.go (limited to 'internal/nametransform') diff --git a/internal/nametransform/names.go b/internal/nametransform/names.go index 9b1639f..ddb5faa 100644 --- a/internal/nametransform/names.go +++ b/internal/nametransform/names.go @@ -25,7 +25,7 @@ type NameTransform struct { func New(c *cryptocore.CryptoCore, longNames bool, raw64 bool) *NameTransform { b64 := base64.URLEncoding if raw64 { - b64 = base64.RawURLEncoding + b64 = getRaw64Encoding() } return &NameTransform{ cryptoCore: c, diff --git a/internal/nametransform/raw64_go1.4.go b/internal/nametransform/raw64_go1.4.go new file mode 100644 index 0000000..bbffb69 --- /dev/null +++ b/internal/nametransform/raw64_go1.4.go @@ -0,0 +1,18 @@ +//+build !go1.5 + +package nametransform + +import ( + "encoding/base64" + "log" +) + +const ( + HaveRaw64 = false +) + +func getRaw64Encoding() *base64.Encoding { + log.Panicf("Tried to use base64.RawURLEncoding but your Go version does not provide it.\n" + + "You need Go 1.5 or higher.") + return nil +} diff --git a/internal/nametransform/raw64_go1.5.go b/internal/nametransform/raw64_go1.5.go new file mode 100644 index 0000000..aa7f7fd --- /dev/null +++ b/internal/nametransform/raw64_go1.5.go @@ -0,0 +1,15 @@ +//+build go1.5 + +package nametransform + +import ( + "encoding/base64" +) + +const ( + HaveRaw64 = true +) + +func getRaw64Encoding() *base64.Encoding { + return base64.RawURLEncoding +} -- cgit v1.2.3