package main import ( "fmt" "os" "path" "strings" ) // configFlags represents an array of JSON configuration files passed to a command line utility type configFlags []string func (f *configFlags) String() string { return strings.Join(*f, ", ") } func (f *configFlags) Set(value string) error { if !path.IsAbs(value) { // Convert to absolute path cwd, err := os.Getwd() if err != nil { return err } value = path.Join(cwd, value) } // Check that the file exists stat, err := os.Stat(value) if err != nil { return err } if stat.IsDir() { return fmt.Errorf("path does not represent a file: %s", value) } *f = append(*f, value) return nil }