cat

package
v1.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Example (Cat_help)
package main

import (
	"os"

	"github.com/aws-cloudformation/rain/internal/cmd/cat"
)

func main() {
	os.Args = []string{
		os.Args[0],
		"--help",
	}

	cat.Cmd.Execute()
}
Output:

Downloads the template or the configuration file used to deploy <stack> and prints it to stdout.

The  `--config` flag can be used to get the rain config file for the stack instead of the template.

Usage:
  cat <stack>

Flags:
  -c, --config        output the config file for the existing stack
  -h, --help          help for cat
  -t, --transformed   get the template with transformations applied by CloudFormation
  -u, --unformatted   output the template in its raw form; do not attempt to format it

Index

Examples

Constants

This section is empty.

Variables

View Source
var Cmd = &cobra.Command{
	Use:   "cat <stack>",
	Short: "Get the CloudFormation template from a running stack",
	Long: `Downloads the template or the configuration file used to deploy <stack> and prints it to stdout.

The  ` + "`" + `--config` + "`" + ` flag can be used to get the rain config file for the stack instead of the template.
`,
	Args:                  cobra.ExactArgs(1),
	DisableFlagsInUseLine: true,
	Run: func(cmd *cobra.Command, args []string) {
		stackName := args[0]

		if config {
			spinner.Push(fmt.Sprintf("Getting config from stack '%s'", stackName))
			stack, err := cfn.GetStack(stackName)
			if err != nil {
				panic(ui.Errorf(err, "failed to get stack '%s'", stackName))
			}
			spinner.Pop()

			deployedConfig, err := dc.ConfigFromStack(stack)
			if err != nil {
				panic(ui.Errorf(err, "unable to get configuration for stack : '%s'", stackName))
			}
			fmt.Print(deployedConfig)

			return
		}

		spinner.Push(fmt.Sprintf("Getting template from stack '%s'", stackName))
		template, err := cfn.GetStackTemplate(stackName, transformed)
		if err != nil {
			panic(ui.Errorf(err, "failed to get template for stack '%s'", stackName))
		}
		spinner.Pop()

		if unformatted {
			fmt.Println(template)
		} else {
			t, err := parse.String(template)
			if err != nil {
				panic(ui.Errorf(err, "failed to parse template for stack '%s'", stackName))
			}

			fmt.Print(format.String(t, format.Options{}))
		}
	},
}

Cmd is the cat command's entrypoint

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL