Skip to content

Commit

Permalink
Support and About command implementation (#909)
Browse files Browse the repository at this point in the history
* about command

* support markdown implementation

* Update cmd/markdown/about.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/support.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/support.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/about.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/support.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/about.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/support.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/support.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/support.md

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>

* Update cmd/markdown/support.md

* Update cmd/markdown/support.md

* fix command error

* Apply suggestions from code review

---------

Co-authored-by: Erik Osterman (CEO @ Cloud Posse) <[email protected]>
  • Loading branch information
Cerebrovinny and osterman authored Jan 7, 2025
1 parent 851ae56 commit 2019d88
Show file tree
Hide file tree
Showing 4 changed files with 141 additions and 0 deletions.
45 changes: 45 additions & 0 deletions cmd/about.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package cmd

import (
_ "embed"
"fmt"
"os"

"github.com/charmbracelet/glamour"
"github.com/spf13/cobra"
)

//go:embed markdown/about.md
var aboutMarkdown string

// aboutCmd represents the about command
var aboutCmd = &cobra.Command{
Use: "about",
Short: "Learn about Atmos",
Long: `Display information about Atmos, its features, and benefits.`,
Args: cobra.NoArgs,
DisableSuggestions: true,
SilenceUsage: true,
SilenceErrors: true,
RunE: func(cmd *cobra.Command, args []string) error {
renderer, err := glamour.NewTermRenderer(
glamour.WithAutoStyle(),
glamour.WithWordWrap(80),
)
if err != nil {
return fmt.Errorf("failed to create markdown renderer: %w", err)
}

out, err := renderer.Render(aboutMarkdown)
if err != nil {
return fmt.Errorf("failed to render about documentation: %w", err)
}

fmt.Fprint(os.Stdout, out)
return nil
},
}

func init() {
RootCmd.AddCommand(aboutCmd)
}
20 changes: 20 additions & 0 deletions cmd/markdown/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# About Atmos

Atmos is an open-source framework for managing the configuration of Infrastructure as Code (IaC) at scale using Stacks.

It simplifies the deployment of infrastructure by providing a consistent, YAML-driven configuration system using tools like Terraform and Helmfile. Atmos helps teams adopt best practices, enforce standards, and automate complex workflows across environments.

## Key Features

- **Reusable Components**: Modular building blocks for defining infrastructure.
- **Stacks**: Environment-specific configurations for managing multiple AWS accounts.
- **YAML-Based**: Declarative configurations for easy maintenance.
- **Terraform & Helmfile**: Unified commands for seamless integration.
- **Automation-Ready**: Perfect for CI/CD pipelines and DevOps workflows.
- **Scalable**: Designed for multi-account, multi-environment AWS setups.

## Why Atmos?
Atmos reduces complexity, promotes consistency, and accelerates delivery, making it an ideal choice
for organizations managing large-scale AWS infrastructure.

Learn more [here](https://atmos.tools)
31 changes: 31 additions & 0 deletions cmd/markdown/support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Support

## Community Resources

Need help? Join the [Atmos community!](https://cloudposse.com/slack)

- **Slack Community**: Connect with active users in the `#atmos` channel and get help anytime [on slack](https://cloudposse.com/slack).
- **GitHub Discussions**: Post questions or join conversations with the community and Cloud Posse.
- **Issue Tracker**: Found a bug? Report it [here](https://github.com/cloudposse/atmos/issues).

## Office Hours

We hold **office hours every Wednesday at 11:30 AM PST**. Join us for live Q&A sessions.

[](https://cloudposse.com/office-hours)

## Paid Support

We offer priority support to GitHub Sponsors (Enterprise Tier).

[](https://github.com/sponsors/cloudposse)

Included with sponsorship, we host **30-minute workshops twice a week** to:
- Answer your questions.
- Assist with debugging issues.
- Discuss architectural decisions.

Workshops are tailored to help you succeed with Atmos, our AWS Reference Architectures, and related tools.

> **Note**: Paid support includes priority responses.
> [](https://github.com/sponsors/cloudposse)
45 changes: 45 additions & 0 deletions cmd/support.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package cmd

import (
_ "embed"
"fmt"
"os"

"github.com/charmbracelet/glamour"
"github.com/spf13/cobra"
)

//go:embed markdown/support.md
var supportMarkdown string

// supportCmd represents the support command
var supportCmd = &cobra.Command{
Use: "support",
Short: "Show Atmos support options",
Long: `Display information about Atmos support options, including community resources and paid support.`,
Args: cobra.NoArgs,
DisableSuggestions: true,
SilenceUsage: true,
SilenceErrors: true,
RunE: func(cmd *cobra.Command, args []string) error {
renderer, err := glamour.NewTermRenderer(
glamour.WithAutoStyle(),
glamour.WithWordWrap(80),
)
if err != nil {
return fmt.Errorf("failed to create markdown renderer: %w", err)
}

out, err := renderer.Render(supportMarkdown)
if err != nil {
return fmt.Errorf("failed to render support documentation: %w", err)
}

fmt.Fprint(os.Stdout, out)
return nil
},
}

func init() {
RootCmd.AddCommand(supportCmd)
}

0 comments on commit 2019d88

Please sign in to comment.