github.com/munnerz/test-infra@v0.0.0-20190108210205-ce3d181dc989/pkg/flagutil/flagutil.go (about) 1 /* 2 Copyright 2018 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 // Package flagutil contains utilities and interfaces shared between 18 // several test-infra commands. 19 package flagutil 20 21 import ( 22 "flag" 23 ) 24 25 // OptionGroup provides an interface which can be implemented by an 26 // option handler (e.g. for GitHub or Kubernetes) to support generic 27 // option-group handling. 28 type OptionGroup interface { 29 // AddFlags injects options into the given FlagSet. 30 AddFlags(fs *flag.FlagSet) 31 32 // Validate validates options. 33 Validate(dryRun bool) error 34 }