Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/cli. OpenStatus CLI www.openstatus.dev
Something went wrong. Try again.
Go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108package cmd
import ( "context" "os" "os/signal" "syscall"
"github.com/urfave/cli/v3"
"github.com/openstatusHQ/cli/internal/check" output "github.com/openstatusHQ/cli/internal/cli" "github.com/openstatusHQ/cli/internal/login" "github.com/openstatusHQ/cli/internal/maintenance" "github.com/openstatusHQ/cli/internal/monitors" "github.com/openstatusHQ/cli/internal/notification" "github.com/openstatusHQ/cli/internal/privatelocation" "github.com/openstatusHQ/cli/internal/run" "github.com/openstatusHQ/cli/internal/statuspage" "github.com/openstatusHQ/cli/internal/statusreport" "github.com/openstatusHQ/cli/internal/terraform" "github.com/openstatusHQ/cli/internal/whoami")
func NewApp() *cli.Command { app := &cli.Command{ Name: "openstatus", Suggest: true, EnableShellCompletion: true, Usage: "Manage status pages, monitors, and incidents from the terminal", Description: `OpenStatus CLI lets you manage your status pages and uptime monitorsfrom the command line. Report and track incidents, define monitors as code,and run on-demand checks.
Get started: openstatus login Save your API token openstatus status-report create Report an incident openstatus status-report list View active incidents openstatus maintenance create Schedule a maintenance window openstatus maintenance list View maintenance windows openstatus monitors apply Sync monitors from config openstatus monitors list List your monitors openstatus run Run synthetic tests openstatus pl list List your private locations
https://docs.openstatus.dev | https://github.com/openstatusHQ/cli/issues/new`, Version: "v1.3.0", Flags: []cli.Flag{ &cli.BoolFlag{ Name: "json", Usage: "Output results as JSON", }, &cli.BoolFlag{ Name: "no-color", Usage: "Disable colored output", }, &cli.BoolFlag{ Name: "quiet", Usage: "Suppress non-error output", Aliases: []string{"q"}, }, &cli.BoolFlag{ Name: "debug", Usage: "Enable debug output", }, }, Before: func(ctx context.Context, cmd *cli.Command) (context.Context, error) { output.SetJSONOutput(cmd.Bool("json")) output.SetQuietMode(cmd.Bool("quiet")) output.SetDebugMode(cmd.Bool("debug")) output.InitColorSettings(cmd.Bool("no-color")) return ctx, nil }, Commands: []*cli.Command{ check.CheckCmd(), monitors.MonitorsCmd(), statusreport.StatusReportCmd(), maintenance.MaintenanceCmd(), statuspage.StatusPageCmd(), notification.NotificationCmd(), privatelocation.PrivateLocationsCmd(), run.RunCmd(), whoami.WhoamiCmd(), login.LoginCmd(), login.LogoutCmd(), terraform.TerraformCmd(), }, } return app}
func RunApp(app *cli.Command) error { ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stop()
go func() { <-ctx.Done() stop() // Second signal: force exit sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, os.Interrupt, syscall.SIGTERM) <-sigCh os.Exit(130) }()
return app.Run(ctx, os.Args)}