github.com/jmrodri/operator-sdk@v0.5.0/commands/operator-sdk/cmd/print_deps.go (about)

     1  // Copyright 2018 The Operator-SDK Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package cmd
    16  
    17  import (
    18  	"fmt"
    19  
    20  	"github.com/operator-framework/operator-sdk/pkg/scaffold"
    21  
    22  	"github.com/spf13/cobra"
    23  )
    24  
    25  var asFile bool
    26  
    27  func NewPrintDepsCmd() *cobra.Command {
    28  	printDepsCmd := &cobra.Command{
    29  		Use:   "print-deps",
    30  		Short: "Print Golang packages and versions required to run the operator",
    31  		Long: `The operator-sdk print-deps command prints all Golang packages and versions expected
    32  by this version of the Operator SDK. Versions for these packages should match
    33  those in an operators' Gopkg.toml file.
    34  
    35  print-deps prints in columnar format by default. Use the --as-file flag to
    36  print in Gopkg.toml file format.
    37  `,
    38  		RunE: printDepsFunc,
    39  	}
    40  
    41  	printDepsCmd.Flags().BoolVar(&asFile, "as-file", false, "Print dependencies in Gopkg.toml file format.")
    42  
    43  	return printDepsCmd
    44  }
    45  
    46  func printDepsFunc(cmd *cobra.Command, args []string) error {
    47  	if len(args) != 0 {
    48  		return fmt.Errorf("command %s doesn't accept any arguments", cmd.CommandPath())
    49  	}
    50  	if asFile {
    51  		scaffold.PrintDepsAsFile()
    52  	} else if err := scaffold.PrintDeps(); err != nil {
    53  		return fmt.Errorf("print deps failed: (%v)", err)
    54  	}
    55  	return nil
    56  }