github.com/bitrise-io/go-xamarin@v0.0.0-20211005113058-bf60a8bae851/tools/tools.go (about) 1 package tools 2 3 import "io" 4 5 // Runnable ... 6 type Runnable interface { 7 String() string 8 SetCustomOptions(options ...string) 9 Run(outWriter, errWriter io.Writer) error 10 } 11 12 // Printable ... 13 type Printable interface { 14 String() string 15 } 16 17 // Editable ... 18 type Editable interface { 19 SetCustomOptions(options ...string) 20 } 21 22 // 23 // EmptyCommand - for return type in case of failed to create a RunnableCommand 24 type EmptyCommand struct{} 25 26 // String ... 27 func (cmd *EmptyCommand) String() string { return "" } 28 29 // SetCustomOptions ... 30 func (cmd *EmptyCommand) SetCustomOptions(options ...string) {} 31 32 // Run ... 33 func (cmd *EmptyCommand) Run() error { return nil } 34 35 // --- 36 37 // PrintableSliceContains ... 38 func PrintableSliceContains(cmdSlice []Printable, cmd Printable) bool { 39 for _, c := range cmdSlice { 40 if c.String() == cmd.String() { 41 return true 42 } 43 } 44 return false 45 }