code: func InitInputSource(flags []cli.Flag, createInputSource func() (InputSourceContext, error)) cli.BeforeFunc {
  	return func(context *cli.Context) error {
  		inputSource, err := createInputSource()
  		if err != nil {
  			return fmt.Errorf("Unable to create input source: inner error: \n'%v'", err.Error())
  		}
  
  		return ApplyInputSourceValues(context, inputSource, flags)
  	}
  }
docs: // InitInputSource is used to to setup an InputSourceContext on a cli.Command Before method. It will create a new
  // input source based on the func provided. If there is no error it will then apply the new input source to any flags
  // that are supported by the input source