cmds

package
v0.5.12 Latest Latest
Warning

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

Go to latest
Published: May 14, 2024 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LsServerCmd = &cobra.Command{
	Use:   "ls",
	Short: "List a server's commands",
	Run: func(cmd *cobra.Command, args []string) {
		ctx := cmd.Context()

		server, err := cmd.Flags().GetString("server")
		cobra.CheckErr(err)

		resp, err := http.Get(server + "/api/commands")
		cobra.CheckErr(err)
		defer func(Body io.ReadCloser) {
			err := Body.Close()
			if err != nil {
				log.Error().Err(err).Msg("Failed to close response body")
			}
		}(resp.Body)

		body, err := io.ReadAll(resp.Body)
		cobra.CheckErr(err)

		// Unmarshal the response JSON into a slice of CommandDescription structs
		var cmds []map[string]interface{}
		err = json.Unmarshal(body, &cmds)
		cobra.CheckErr(err)

		gp, _, err := cli.CreateGlazedProcessorFromCobra(cmd)
		cobra.CheckErr(err)

		for _, cmd := range cmds {
			err = gp.AddRow(ctx, types.NewRowFromMap(cmd))
			cobra.CheckErr(err)
		}

		err = gp.Close(ctx)
		cobra.CheckErr(err)
	},
}
View Source
var ServeCmd = &cobra.Command{
	Use:   "serve",
	Short: "Starts the server",
	Args:  cobra.NoArgs,
	Run: func(cmd *cobra.Command, args []string) {
		port, err := cmd.Flags().GetUint16("port")
		cobra.CheckErr(err)
		host, err := cmd.Flags().GetString("host")
		cobra.CheckErr(err)

		serverOptions := []server.ServerOption{
			server.WithPort(port),
			server.WithAddress(host),
		}
		defaultLookups := []render.TemplateLookup{}

		dev, _ := cmd.Flags().GetBool("dev")
		templateDir, err := cmd.Flags().GetString("template-dir")
		cobra.CheckErr(err)

		if dev {
			log.Info().
				Str("assetsDir", "pkg/web/dist").
				Str("templateDir", "pkg/web/src/templates").
				Msg("Using assets from disk")
			serverOptions = append(serverOptions,
				server.WithStaticPaths(fs.NewStaticPath(os.DirFS("pkg/web/dist"), "/dist")),
			)
			defaultLookups = append(defaultLookups, render.NewLookupTemplateFromDirectory("pkg/web/src/templates"))
		} else {
			serverOptions = append(serverOptions, server.WithDefaultParkaStaticPaths())
		}

		if templateDir != "" {
			if dev {
				defaultLookups = append(defaultLookups, render.NewLookupTemplateFromDirectory(templateDir))
			} else {
				lookup := render.NewLookupTemplateFromFS(
					render.WithFS(os.DirFS(templateDir)),
					render.WithPatterns("**/*.tmpl"),
				)
				defaultLookups = append(defaultLookups, lookup)
			}
		}

		serverOptions = append(serverOptions,
			server.WithDefaultParkaRenderer(render.WithPrependTemplateLookups(defaultLookups...)),
		)
		s, _ := server.NewServer(serverOptions...)

		s.Router.GET("/api/example", json2.CreateJSONQueryHandler(NewExampleCommand()))
		s.Router.GET("/example", datatables.CreateDataTablesHandler(NewExampleCommand(), "", "example"))
		s.Router.GET("/download/example.csv", output_file.CreateGlazedFileHandler(NewExampleCommand(), "example.csv"))

		ctx, cancel := context.WithCancel(context.Background())
		defer cancel()
		ctx, stop := signal.NotifyContext(ctx, os.Interrupt)
		defer stop()

		err = s.Run(ctx)

		cobra.CheckErr(err)
	},
}

Functions

This section is empty.

Types

type ExampleCommand

type ExampleCommand struct {
	*cmds.CommandDescription
}

func NewExampleCommand

func NewExampleCommand() *ExampleCommand

func (*ExampleCommand) RunIntoGlazeProcessor added in v0.5.0

func (e *ExampleCommand) RunIntoGlazeProcessor(
	ctx context.Context,
	parsedLayers *layers.ParsedLayers,
	gp middlewares.Processor,
) error

Jump to

Keyboard shortcuts

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