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 }