github.com/apache/incubator-kie-tools/packages/kn-plugin-workflow@v0.28.1-0.20240311201729-34c6856b157f/pkg/common/bind.go (about)

     1  /*
     2   * Licensed to the Apache Software Foundation (ASF) under one
     3   * or more contributor license agreements.  See the NOTICE file
     4   * distributed with this work for additional information
     5   * regarding copyright ownership.  The ASF licenses this file
     6   * to you under the Apache License, Version 2.0 (the
     7   * "License"); you may not use this file except in compliance
     8   * with the License.  You may obtain a copy of the License at
     9   * 
    10   *  http://www.apache.org/licenses/LICENSE-2.0
    11   * 
    12   * Unless required by applicable law or agreed to in writing,
    13   * software distributed under the License is distributed on an
    14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    15   * KIND, either express or implied.  See the License for the
    16   * specific language governing permissions and limitations
    17   * under the License. 
    18   */
    19  
    20  package common
    21  
    22  import (
    23  	"github.com/ory/viper"
    24  	"github.com/spf13/cobra"
    25  )
    26  
    27  type bindWorkflow func(*cobra.Command, []string) error
    28  
    29  func BindEnv(flags ...string) bindWorkflow {
    30  	return func(cmd *cobra.Command, args []string) (err error) {
    31  		for _, flag := range flags {
    32  			if err = viper.BindPFlag(flag, cmd.Flags().Lookup(flag)); err != nil {
    33  				return
    34  			}
    35  		}
    36  		return
    37  	}
    38  }