wal-g
1package gp
2
3import (
4"github.com/spf13/cobra"
5"github.com/wal-g/tracelog"
6conf "github.com/wal-g/wal-g/internal/config"
7"github.com/wal-g/wal-g/internal/databases/greenplum"
8)
9
10const (
11segmentCmdRunShortDescription = "Runs the provided cmd on segment and updates the state file"
12)
13
14var (
15segCmdRunCmd = &cobra.Command{
16Use: "seg-cmd-run name args --content-id=[content_id]",
17Short: segmentCmdRunShortDescription, // TODO : improve description
18Args: cobra.ExactArgs(2),
19Run: func(cmd *cobra.Command, args []string) {
20cmdName := args[0]
21cmdArgs := args[1]
22
23greenplum.SetSegmentStoragePrefix(contentID)
24
25stateUpdateInterval, err := conf.GetDurationSetting(conf.GPSegmentsUpdInterval)
26tracelog.ErrorLogger.FatalOnError(err)
27greenplum.NewSegCmdRunner(contentID, cmdName, cmdArgs, stateUpdateInterval).Run()
28},
29}
30)
31
32var contentID int
33
34func init() {
35segCmdRunCmd.PersistentFlags().IntVar(&contentID, "content-id", 0, "segment content ID")
36_ = segCmdRunCmd.MarkFlagRequired("content-id")
37// Since this is a utility command, it should not be exposed to the end user.
38segCmdRunCmd.Hidden = true
39cmd.AddCommand(segCmdRunCmd)
40}
41