From 4f795e3870f4edd720f02585c904ca4111466117 Mon Sep 17 00:00:00 2001 From: Joseph Cumines Date: Mon, 13 Jun 2022 08:23:41 +1000 Subject: [PATCH] Fix build for go < 1.18 --- flag_float64_slice.go | 15 ---------- flag_int64_slice.go | 15 ---------- flag_int_slice.go | 15 ---------- flag_string_slice.go | 15 ---------- sliceflag.go | 65 +++++++++++++++++++++++++++++++++++++++++++ sliceflag_pre18.go | 10 +++++++ sliceflag_test.go | 3 ++ 7 files changed, 78 insertions(+), 60 deletions(-) create mode 100644 sliceflag_pre18.go diff --git a/flag_float64_slice.go b/flag_float64_slice.go index 8452d29..031ec1d 100644 --- a/flag_float64_slice.go +++ b/flag_float64_slice.go @@ -164,21 +164,6 @@ func (f *Float64SliceFlag) Apply(set *flag.FlagSet) error { return nil } -func (f *Float64SliceFlag) SetValue(slice []float64) { - f.Value = newSliceFlagValue(NewFloat64Slice, slice) -} - -func (f *Float64SliceFlag) SetDestination(slice []float64) { - f.Destination = newSliceFlagValue(NewFloat64Slice, slice) -} - -func (f *Float64SliceFlag) GetDestination() []float64 { - if destination := f.Destination; destination != nil { - return destination.Value() - } - return nil -} - // Get returns the flag’s value in the given Context. func (f *Float64SliceFlag) Get(ctx *Context) []float64 { return ctx.Float64Slice(f.Name) diff --git a/flag_int64_slice.go b/flag_int64_slice.go index 0efea54..657aaaa 100644 --- a/flag_int64_slice.go +++ b/flag_int64_slice.go @@ -163,21 +163,6 @@ func (f *Int64SliceFlag) Apply(set *flag.FlagSet) error { return nil } -func (f *Int64SliceFlag) SetValue(slice []int64) { - f.Value = newSliceFlagValue(NewInt64Slice, slice) -} - -func (f *Int64SliceFlag) SetDestination(slice []int64) { - f.Destination = newSliceFlagValue(NewInt64Slice, slice) -} - -func (f *Int64SliceFlag) GetDestination() []int64 { - if destination := f.Destination; destination != nil { - return destination.Value() - } - return nil -} - // Get returns the flag’s value in the given Context. func (f *Int64SliceFlag) Get(ctx *Context) []int64 { return ctx.Int64Slice(f.Name) diff --git a/flag_int_slice.go b/flag_int_slice.go index 28f8c90..7c38393 100644 --- a/flag_int_slice.go +++ b/flag_int_slice.go @@ -174,21 +174,6 @@ func (f *IntSliceFlag) Apply(set *flag.FlagSet) error { return nil } -func (f *IntSliceFlag) SetValue(slice []int) { - f.Value = newSliceFlagValue(NewIntSlice, slice) -} - -func (f *IntSliceFlag) SetDestination(slice []int) { - f.Destination = newSliceFlagValue(NewIntSlice, slice) -} - -func (f *IntSliceFlag) GetDestination() []int { - if destination := f.Destination; destination != nil { - return destination.Value() - } - return nil -} - // Get returns the flag’s value in the given Context. func (f *IntSliceFlag) Get(ctx *Context) []int { return ctx.IntSlice(f.Name) diff --git a/flag_string_slice.go b/flag_string_slice.go index 2be2af6..bcdfd4c 100644 --- a/flag_string_slice.go +++ b/flag_string_slice.go @@ -152,21 +152,6 @@ func (f *StringSliceFlag) Apply(set *flag.FlagSet) error { return nil } -func (f *StringSliceFlag) SetValue(slice []string) { - f.Value = newSliceFlagValue(NewStringSlice, slice) -} - -func (f *StringSliceFlag) SetDestination(slice []string) { - f.Destination = newSliceFlagValue(NewStringSlice, slice) -} - -func (f *StringSliceFlag) GetDestination() []string { - if destination := f.Destination; destination != nil { - return destination.Value() - } - return nil -} - // Get returns the flag’s value in the given Context. func (f *StringSliceFlag) Get(ctx *Context) []string { return ctx.StringSlice(f.Name) diff --git a/sliceflag.go b/sliceflag.go index 80063ef..7dea357 100644 --- a/sliceflag.go +++ b/sliceflag.go @@ -1,3 +1,6 @@ +//go:build go1.18 +// +build go1.18 + package cli import ( @@ -226,3 +229,65 @@ func unwrapFlagValue(v flag.Value) flag.Value { v = h.value } } + +// NOTE: the methods below are in this file to make use of the build constraint + +func (f *Float64SliceFlag) SetValue(slice []float64) { + f.Value = newSliceFlagValue(NewFloat64Slice, slice) +} + +func (f *Float64SliceFlag) SetDestination(slice []float64) { + f.Destination = newSliceFlagValue(NewFloat64Slice, slice) +} + +func (f *Float64SliceFlag) GetDestination() []float64 { + if destination := f.Destination; destination != nil { + return destination.Value() + } + return nil +} + +func (f *Int64SliceFlag) SetValue(slice []int64) { + f.Value = newSliceFlagValue(NewInt64Slice, slice) +} + +func (f *Int64SliceFlag) SetDestination(slice []int64) { + f.Destination = newSliceFlagValue(NewInt64Slice, slice) +} + +func (f *Int64SliceFlag) GetDestination() []int64 { + if destination := f.Destination; destination != nil { + return destination.Value() + } + return nil +} + +func (f *IntSliceFlag) SetValue(slice []int) { + f.Value = newSliceFlagValue(NewIntSlice, slice) +} + +func (f *IntSliceFlag) SetDestination(slice []int) { + f.Destination = newSliceFlagValue(NewIntSlice, slice) +} + +func (f *IntSliceFlag) GetDestination() []int { + if destination := f.Destination; destination != nil { + return destination.Value() + } + return nil +} + +func (f *StringSliceFlag) SetValue(slice []string) { + f.Value = newSliceFlagValue(NewStringSlice, slice) +} + +func (f *StringSliceFlag) SetDestination(slice []string) { + f.Destination = newSliceFlagValue(NewStringSlice, slice) +} + +func (f *StringSliceFlag) GetDestination() []string { + if destination := f.Destination; destination != nil { + return destination.Value() + } + return nil +} diff --git a/sliceflag_pre18.go b/sliceflag_pre18.go new file mode 100644 index 0000000..1173ae7 --- /dev/null +++ b/sliceflag_pre18.go @@ -0,0 +1,10 @@ +//go:build !go1.18 +// +build !go1.18 + +package cli + +import ( + "flag" +) + +func unwrapFlagValue(v flag.Value) flag.Value { return v } diff --git a/sliceflag_test.go b/sliceflag_test.go index 8ff9055..179020b 100644 --- a/sliceflag_test.go +++ b/sliceflag_test.go @@ -1,3 +1,6 @@ +//go:build go1.18 +// +build go1.18 + package cli import (