func (f *intFields) String() string {
	if f == nil {
		return ""
	}
	var sb strings.Builder
	for i, n := range *f {
		if i != 0 {
			sb.WriteByte(',')
		}
		fmt.Fprintf(&sb, "%d", n+1)
	}
	return sb.String()
}
String is part of flag.Value interface
package main
import (
	"errors"
	"flag"
	"fmt"
	"strconv"
	"strings"
	"github.com/facebookincubator/nvdtools/wfn"
)
type intFields []int
func (f *intFields) Set(s string) error {
	if f == nil {
		return errors.New("Set called on nil reciever")
	}
	for _, t := range strings.Split(s, ",") {
		i, err := strconv.Atoi(t)
		if err != nil {
			return fmt.Errorf("failed to parse fields from %q: %v", s, err)
		}
		if i <= 0 {
			return fmt.Errorf("illegal CSV index %d: %q", i, s)
		}
		*f = append(*f, i-1)
	}
	return nil
}