cmd

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: May 16, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const GenerateDesc = `` /* 411-byte string literal not displayed */
View Source
const ReposDesc = `` /* 216-byte string literal not displayed */

Variables

View Source
var DefaultFlags = []cli.Flag{
	&cli.StringFlag{
		Name:  "loglevel",
		Usage: "Set the log level (debug, info, warn, error, fatal, panic)",
		Value: "error",
	},
	&cli.StringFlag{
		Name:  "output",
		Usage: "Set the (log) output to 'json' or 'text'",
		Value: "text",
	},
	&cli.StringFlag{
		Name:  "datadir",
		Usage: "Search path for files. Defaults to '.', can be set using $DATADIR",
		Value: os.Getenv("DATADIR"),
	},
	&cli.StringFlag{
		Name:  "team",
		Usage: "Limit processing to team",
		Value: "*",
	},
	&cli.StringFlag{
		Name:  "app",
		Usage: "Limit processing to app",
		Value: "*",
	},
	&cli.StringFlag{
		Name:  "env",
		Usage: "Limit processing to env",
		Value: "*",
	},
	&cli.StringFlag{
		Name:  "filter",
		Usage: "Limit processing based on a 'team/app/env' string. Overrides team, app, env flag.",
	},
	&cli.BoolFlag{
		Name:  "errexit",
		Usage: "Exit on errors",
	},
}
View Source
var GenerateCommand = &cli.Command{
	Name:            "generate",
	Usage:           "render and write config files",
	UsageText:       "murmur [options] [target_files...]",
	HideHelpCommand: true,
	Args:            true,
	ArgsUsage:       "files...",
	Action:          GenerateFunc,
	Description:     GenerateDesc,
	Flags: append(DefaultFlags,
		branchOverridesFlag,
		&cli.StringFlag{
			Name:  "repodir",
			Usage: "Location of git repos. Defaults to current working directory, can be set with $REPODIR",
			Value: os.Getenv("REPODIR"),
		},
		&cli.StringFlag{
			Name:  "destdir",
			Usage: "Destination directory for rendered files. Defaults the same directory as the jsonnet file, can be set using $DESTDIR.",
			Value: os.Getenv("DESTDIR"),
		},
		&cli.BoolFlag{
			Name:  "overwrite",
			Usage: "Overwrite existing repos with fresh clones",
		},
		&cli.BoolFlag{
			Name:  "commit",
			Usage: "Commit / push changes to git repos",
		},
		&cli.StringFlag{
			Name:  "commit-script",
			Usage: "Script to run to commit / push changes to the repo",
		},
		&cli.StringFlag{
			Name:  "commit-msg",
			Usage: "Commit message",
			Value: "murmur commit",
		},
		&cli.StringFlag{
			Name:  "jsonnet-args",
			Usage: "Arguments to pass to the jsonnet application.",
			Value: "-m",
		},
		&cli.StringFlag{
			Name:   "delete-destdir",
			Usage:  "Delete the dest dir",
			Hidden: true,
		},
	),
	Before: func(c *cli.Context) error {

		c.Set("errexit", "true")

		c.Set("delete-destdir", "false")

		return BeforeFunc(c)
	},
	After: func(c *cli.Context) error {
		if c.String("delete-destdir") == "true" {
			log.Debug("Deleting destdir", "dir", c.String("destdir"))
			err := os.RemoveAll(c.String("destdir"))
			if err != nil {
				return err
			}
		}
		return nil
	},
}
View Source
var JsonnetCommand = &cli.Command{
	Name:            "jsonnet",
	Usage:           "work with jsonnet files",
	UsageText:       "murmur jsonnet [options] render [target_files...]",
	HideHelpCommand: true,
	Args:            true,
	ArgsUsage:       "files...",
	Description:     jsonnetDesc,
	Subcommands: []*cli.Command{
		{
			Name:        "create",
			Usage:       "create a new jsonnet file",
			Action:      createJsonnet,
			Description: jsonnetCreateDesc,
			Args:        true,
			ArgsUsage:   "team/app/env",
			Before:      BeforeFunc,
			Flags: []cli.Flag{
				&cli.StringFlag{
					Name:  "datadir",
					Usage: "Search path for files. Defaults to '.', can be set using $DATADIR",
					Value: os.Getenv("DATADIR"),
				},
				&cli.StringFlag{
					Name:  "loglevel",
					Usage: "Set the log level (debug, info, warn, error, fatal, panic)",
					Value: "error",
				},
			},
		},
		{
			Name:   "list",
			Usage:  "list jsonnet files",
			Action: listJsonnet,
			Flags:  DefaultFlags,
			Before: BeforeFunc,
		},
		{
			Name:   "render",
			Usage:  "render jsonnet files",
			Action: renderJsonnet,
			Before: BeforeFunc,
			Flags: append(DefaultFlags,
				&cli.StringFlag{
					Name:  "destdir",
					Usage: "Rendered files destination, relative to current directory. Defaults to the jsonnet file directory, can be set using $DESTDIR",
					Value: os.Getenv("DESTDIR"),
				},

				&cli.StringFlag{
					Name:  "jsonnet-args",
					Usage: "Arguments to pass to the jsonnet application. Defaults to '-m <destdir>'",
					Value: "-m",
				},
			),
			Description: jsonnetRenderDesc,
		},
	},
}
View Source
var ReposCommand = &cli.Command{
	Name:            "repos",
	Usage:           "work with repos",
	UsageText:       "murmur repos [options] list|write [target_files...]",
	HideHelpCommand: true,
	Args:            true,
	ArgsUsage:       "files...",

	Description: ReposDesc,
	Subcommands: []*cli.Command{
		{
			Name:   "list",
			Usage:  "list repos",
			Action: listRepos,
			Flags:  append(DefaultFlags, branchOverridesFlag),
			Before: BeforeFunc,
		},
		{
			Name:   "clone",
			Usage:  "clone repos",
			Action: cloneRepos,
			Before: BeforeFunc,
			Flags: append(DefaultFlags,
				repoDirFlag,
				branchOverridesFlag,
				&cli.BoolFlag{
					Name:  "overwrite",
					Usage: "Overwrite existing repos with fresh clones",
				},
			),
		},
		{
			Name:   "write",
			Usage:  "write to repos",
			Action: writeRepos,
			Before: BeforeFunc,
			Flags: append(DefaultFlags,
				branchOverridesFlag,
				repoDirFlag,
			),
		},
		{
			Name:   "commit",
			Usage:  "commit repos",
			Action: commitRepos,
			Before: BeforeFunc,
			Flags: append(DefaultFlags,
				branchOverridesFlag,
				repoDirFlag,
				&cli.StringFlag{
					Name:  "commit-script",
					Usage: "script to run to commit the repo",
				},
				&cli.StringFlag{
					Name:  "commit-msg",
					Usage: "commit message",
					Value: "murmur commit",
				},
			),
		},
	},
}

Functions

func BeforeFunc

func BeforeFunc(ctx *cli.Context) error

this function is called before each command, after context is ready

func GenerateFunc added in v0.1.3

func GenerateFunc(c *cli.Context) error

Types

This section is empty.

Jump to

Keyboard shortcuts

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