photoprism/internal/commands/show_config.go

58 lines
1.3 KiB
Go
Raw Normal View History

package commands
import (
"fmt"
"strings"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"github.com/photoprism/photoprism/internal/config"
"github.com/photoprism/photoprism/internal/get"
"github.com/photoprism/photoprism/pkg/report"
)
2022-04-14 10:30:47 +00:00
// ShowConfigCommand configures the command name, flags, and action.
var ShowConfigCommand = cli.Command{
Name: "config",
Usage: "Displays global config options and their current values",
Flags: report.CliFlags,
Action: showConfigAction,
}
// ConfigReports specifies which configuration reports to display.
var ConfigReports = []Report{
{Title: "Config Options", NoWrap: true, Report: func(conf *config.Config) ([][]string, []string) {
return conf.Report()
}},
}
2022-04-14 10:30:47 +00:00
// showConfigAction shows global config option names and values.
func showConfigAction(ctx *cli.Context) error {
conf := config.NewConfig(ctx)
conf.SetLogLevel(logrus.FatalLevel)
get.SetConfig(conf)
if err := conf.Init(); err != nil {
log.Debug(err)
}
for _, rep := range ConfigReports {
// Get values.
rows, cols := rep.Report(conf)
// Render report.
opt := report.Options{Format: report.CliFormat(ctx), NoWrap: rep.NoWrap}
result, _ := report.Render(rows, cols, opt)
// Show report.
if opt.Format == report.Default {
fmt.Printf("\n%s\n\n", strings.ToUpper(rep.Title))
}
fmt.Println(result)
}
return nil
}