github.com/TrueBlocks/trueblocks-core/src/apps/chifra@v0.0.0-20241022031540-b362680128f7/cmd/daemon.go (about)

     1  // Copyright 2016, 2024 The TrueBlocks Authors. All rights reserved.
     2  // Use of this source code is governed by a license that can
     3  // be found in the LICENSE file.
     4  /*
     5   * Parts of this file were auto generated. Edit only those parts of
     6   * the code inside of 'EXISTING_CODE' tags.
     7   */
     8  
     9  package cmd
    10  
    11  // EXISTING_CODE
    12  import (
    13  	"os"
    14  
    15  	daemonPkg "github.com/TrueBlocks/trueblocks-core/src/apps/chifra/internal/daemon"
    16  	"github.com/TrueBlocks/trueblocks-core/src/apps/chifra/internal/globals"
    17  	"github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/caps"
    18  	"github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/file"
    19  	outputHelpers "github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/output/helpers"
    20  	"github.com/spf13/cobra"
    21  )
    22  
    23  // EXISTING_CODE
    24  
    25  // daemonCmd represents the daemon command
    26  var daemonCmd = &cobra.Command{
    27  	Use:     usageDaemon,
    28  	Long:    longDaemon,
    29  	Version: versionText,
    30  	PreRun: outputHelpers.PreRunWithJsonWriter("daemon", func() *globals.GlobalOptions {
    31  		return &daemonPkg.GetOptions().Globals
    32  	}),
    33  	RunE: file.RunWithFileSupport("daemon", daemonPkg.RunDaemon, daemonPkg.ResetOptions),
    34  	PostRun: outputHelpers.PostRunWithJsonWriter(func() *globals.GlobalOptions {
    35  		return &daemonPkg.GetOptions().Globals
    36  	}),
    37  	Aliases: []string{"serve"}}
    38  
    39  const usageDaemon = `daemon [flags]`
    40  
    41  const longDaemon = `Purpose:
    42    Initialize and control long-running processes such as the API and the scrapers.`
    43  
    44  const notesDaemon = `
    45  Notes:
    46    - To start API open terminal window and run chifra daemon.
    47    - See the API documentation (https://trueblocks.io/api) for more information.
    48    - The --port option is deprecated, use --url instead.
    49    - The --grpc option is deprecated, there is no replacement.
    50    - The --api option is deprecated, there is no replacement.
    51    - The --scrape option is deprecated, use chifra scrape instead.
    52    - The --monitor option is deprecated, use chifra monitors --watch instead.`
    53  
    54  func init() {
    55  	var capabilities caps.Capability // capabilities for chifra daemon
    56  	capabilities = capabilities.Add(caps.Verbose)
    57  	capabilities = capabilities.Add(caps.Version)
    58  	capabilities = capabilities.Add(caps.Noop)
    59  	capabilities = capabilities.Add(caps.NoColor)
    60  
    61  	daemonCmd.Flags().SortFlags = false
    62  
    63  	daemonCmd.Flags().StringVarP(&daemonPkg.GetOptions().Url, "url", "u", "localhost:8080", `specify the API server's url and optionally its port`)
    64  	daemonCmd.Flags().BoolVarP(&daemonPkg.GetOptions().Silent, "silent", "", false, `disable logging (for use in SDK for example)`)
    65  	daemonCmd.Flags().StringVarP(&daemonPkg.GetOptions().Port, "port", "p", ":8080", `deprecated, use --url instead (hidden)`)
    66  	daemonCmd.Flags().BoolVarP(&daemonPkg.GetOptions().Grpc, "grpc", "g", false, `deprecated, there is no replacement (hidden)`)
    67  	daemonCmd.Flags().StringVarP(&daemonPkg.GetOptions().Api, "api", "a", "on", `deprecated, there is no replacement (hidden)
    68  One of [ off | on ]`)
    69  	daemonCmd.Flags().StringVarP(&daemonPkg.GetOptions().Scrape, "scrape", "s", "", `deprecated, use chifra scrape instead (hidden)
    70  One of [ off | blooms | index ]`)
    71  	daemonCmd.Flags().BoolVarP(&daemonPkg.GetOptions().Monitor, "monitor", "m", false, `deprecated, use chifra monitors --watch instead (hidden)`)
    72  	if os.Getenv("TEST_MODE") != "true" {
    73  		_ = daemonCmd.Flags().MarkHidden("port")
    74  		_ = daemonCmd.Flags().MarkHidden("grpc")
    75  		_ = daemonCmd.Flags().MarkHidden("api")
    76  		_ = daemonCmd.Flags().MarkHidden("scrape")
    77  		_ = daemonCmd.Flags().MarkHidden("monitor")
    78  	}
    79  	_ = daemonCmd.Flags().MarkDeprecated("port", "The --port option has been deprecated.")
    80  	_ = daemonCmd.Flags().MarkDeprecated("grpc", "The --grpc option has been deprecated.")
    81  	_ = daemonCmd.Flags().MarkDeprecated("api", "The --api option has been deprecated.")
    82  	_ = daemonCmd.Flags().MarkDeprecated("scrape", "The --scrape option has been deprecated.")
    83  	_ = daemonCmd.Flags().MarkDeprecated("monitor", "The --monitor option has been deprecated.")
    84  	globals.InitGlobals("daemon", daemonCmd, &daemonPkg.GetOptions().Globals, capabilities)
    85  
    86  	daemonCmd.SetUsageTemplate(UsageWithNotes(notesDaemon))
    87  	daemonCmd.SetOut(os.Stderr)
    88  
    89  	// EXISTING_CODE
    90  	// EXISTING_CODE
    91  
    92  	chifraCmd.AddCommand(daemonCmd)
    93  }