| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | // Copyright 2015 The go-ethereum Authors | 
					
						
							|  |  |  | // This file is part of go-ethereum. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | // go-ethereum is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  | // it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  | // the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  | // (at your option) any later version. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | // go-ethereum is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
					
						
							|  |  |  | // GNU General Public License for more details. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | // You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | // along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Contains the geth command usage template and generator. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"io" | 
					
						
							| 
									
										
										
										
											2017-05-25 09:15:51 +02:00
										 |  |  | 	"sort" | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/ethereum/go-ethereum/cmd/utils" | 
					
						
							| 
									
										
										
										
											2016-01-26 14:39:21 +01:00
										 |  |  | 	"github.com/ethereum/go-ethereum/internal/debug" | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 	"github.com/ethereum/go-ethereum/internal/flags" | 
					
						
							| 
									
										
										
										
											2019-01-29 09:14:24 +01:00
										 |  |  | 	cli "gopkg.in/urfave/cli.v1" | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // AppHelpFlagGroups is the application flags, grouped by functionality. | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | var AppHelpFlagGroups = []flags.FlagGroup{ | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "ETHEREUM", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							| 
									
										
										
										
											2017-04-13 17:12:37 +03:00
										 |  |  | 			configFileFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			utils.DataDirFlag, | 
					
						
							| 
									
										
										
										
											2019-03-08 15:56:20 +02:00
										 |  |  | 			utils.AncientFlag, | 
					
						
							| 
									
										
										
										
											2016-03-07 14:38:56 -08:00
										 |  |  | 			utils.KeyStoreDirFlag, | 
					
						
							| 
									
										
										
										
											2017-04-20 14:01:51 +03:00
										 |  |  | 			utils.NoUSBFlag, | 
					
						
							| 
									
										
										
										
											2019-05-31 11:30:28 +02:00
										 |  |  | 			utils.SmartCardDaemonPathFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			utils.NetworkIdFlag, | 
					
						
							| 
									
										
										
										
											2018-11-16 17:58:24 +02:00
										 |  |  | 			utils.GoerliFlag, | 
					
						
							| 
									
										
										
										
											2020-04-09 11:09:58 +02:00
										 |  |  | 			utils.RinkebyFlag, | 
					
						
							| 
									
										
										
										
											2020-06-03 11:05:15 +02:00
										 |  |  | 			utils.YoloV1Flag, | 
					
						
							| 
									
										
										
										
											2020-04-09 11:09:58 +02:00
										 |  |  | 			utils.RopstenFlag, | 
					
						
							| 
									
										
										
										
											2017-04-13 17:12:37 +03:00
										 |  |  | 			utils.SyncModeFlag, | 
					
						
							| 
									
										
											  
											
												cmd,eth: 16400 Add an option to stop geth once in sync.  WIP for light mode (#17321)
* cmd, eth: Added in the flag to step geth once sync based on input
* cmd, eth: 16400 Add an option to stop geth once in sync.
* cmd: 16400 Add an option to stop geth once in sync. WIP
* cmd/geth/main, les/fletcher: added in light mode support
* cmd/geth/main, les/fletcher: Cleaned Comments and code for light mode
* cmd: 16400 Fixed formatting issue and cleaned code
* cmd, eth, les: 16400 Fixed formatting issues
* cmd, eth, les: Performed gofmt to update formatting
* cmd, eth, les: Fixed bugs resulting formatting
* cmd/geth, eth/, les: switched to downloader event
* eth: Fixed styling and gen_config
* eth/: Fix nil error in config file
* cmd/geth: Updated countdown log
* les/fetcher.go: Removed depcreated channel
* eth/downloader.go: Removed deprecated select
* cmd/geth, cmd/utils: Fixed minor issues
* eth: Reverted config files to proper format
* eth: Fixed typo in config file
* cmd/geth, eth/down: Updated code to use header time stamp
* eth/downloader: Changed the time threshold to 10 minutes
* cmd/geth, eth/downloader: Updated downloading event to pass latest header
* cmd/geth: Updated main to use right timer object
* cmd/geth: Removed unused failed event
* cmd/geth: added in correct time field with type assertion
* cmd/geth, cmd/utils: Updated flag to use boolean
* cmd/geth, cmd/utils, eth/downloader: Cleaned up code based on recommendations
* cmd/geth: Removed unneeded import
* cmd/geth, eth/downloader: fixed event field and suggested changes
* cmd/geth, cmd/utils: Updated flag and linting issue
											
										 
											2019-01-30 02:40:36 -05:00
										 |  |  | 			utils.ExitWhenSyncedFlag, | 
					
						
							| 
									
										
										
										
											2018-02-05 18:40:32 +02:00
										 |  |  | 			utils.GCModeFlag, | 
					
						
							| 
									
										
										
										
											2020-05-11 17:58:43 +02:00
										 |  |  | 			utils.TxLookupLimitFlag, | 
					
						
							| 
									
										
										
										
											2017-04-13 17:12:37 +03:00
										 |  |  | 			utils.EthStatsURLFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			utils.IdentityFlag, | 
					
						
							| 
									
										
										
										
											2019-07-10 10:08:59 +08:00
										 |  |  | 			utils.LightKDFFlag, | 
					
						
							|  |  |  | 			utils.WhitelistFlag, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2019-07-10 08:54:06 +03:00
										 |  |  | 		Name: "LIGHT CLIENT", | 
					
						
							| 
									
										
										
										
											2019-07-10 10:08:59 +08:00
										 |  |  | 		Flags: []cli.Flag{ | 
					
						
							| 
									
										
										
										
											2019-07-10 08:54:06 +03:00
										 |  |  | 			utils.LightServeFlag, | 
					
						
							|  |  |  | 			utils.LightIngressFlag, | 
					
						
							|  |  |  | 			utils.LightEgressFlag, | 
					
						
							|  |  |  | 			utils.LightMaxPeersFlag, | 
					
						
							| 
									
										
										
										
											2019-07-09 20:30:24 +03:00
										 |  |  | 			utils.UltraLightServersFlag, | 
					
						
							|  |  |  | 			utils.UltraLightFractionFlag, | 
					
						
							|  |  |  | 			utils.UltraLightOnlyAnnounceFlag, | 
					
						
							| 
									
										
										
										
											2020-07-13 17:02:54 +08:00
										 |  |  | 			utils.LightNoPruneFlag, | 
					
						
							| 
									
										
										
										
											2016-10-19 14:55:13 +03:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2018-07-09 16:41:28 +08:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "DEVELOPER CHAIN", | 
					
						
							| 
									
										
										
										
											2017-10-24 13:40:42 +03:00
										 |  |  | 		Flags: []cli.Flag{ | 
					
						
							|  |  |  | 			utils.DeveloperFlag, | 
					
						
							|  |  |  | 			utils.DeveloperPeriodFlag, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2017-03-06 11:37:32 +02:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "ETHASH", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							|  |  |  | 			utils.EthashCacheDirFlag, | 
					
						
							|  |  |  | 			utils.EthashCachesInMemoryFlag, | 
					
						
							|  |  |  | 			utils.EthashCachesOnDiskFlag, | 
					
						
							| 
									
										
										
										
											2020-03-31 16:44:04 +08:00
										 |  |  | 			utils.EthashCachesLockMmapFlag, | 
					
						
							| 
									
										
										
										
											2017-03-06 11:37:32 +02:00
										 |  |  | 			utils.EthashDatasetDirFlag, | 
					
						
							| 
									
										
										
										
											2017-03-06 17:20:25 +02:00
										 |  |  | 			utils.EthashDatasetsInMemoryFlag, | 
					
						
							| 
									
										
										
										
											2017-03-06 11:37:32 +02:00
										 |  |  | 			utils.EthashDatasetsOnDiskFlag, | 
					
						
							| 
									
										
										
										
											2020-03-31 16:44:04 +08:00
										 |  |  | 			utils.EthashDatasetsLockMmapFlag, | 
					
						
							| 
									
										
										
										
											2017-03-06 11:37:32 +02:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2017-05-26 13:40:47 +03:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "TRANSACTION POOL", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							| 
									
										
										
										
											2018-08-21 20:30:06 +03:00
										 |  |  | 			utils.TxPoolLocalsFlag, | 
					
						
							| 
									
										
										
										
											2017-07-05 17:06:05 +03:00
										 |  |  | 			utils.TxPoolNoLocalsFlag, | 
					
						
							| 
									
										
										
										
											2017-07-28 15:09:39 +02:00
										 |  |  | 			utils.TxPoolJournalFlag, | 
					
						
							|  |  |  | 			utils.TxPoolRejournalFlag, | 
					
						
							| 
									
										
										
										
											2017-05-26 13:40:47 +03:00
										 |  |  | 			utils.TxPoolPriceLimitFlag, | 
					
						
							|  |  |  | 			utils.TxPoolPriceBumpFlag, | 
					
						
							|  |  |  | 			utils.TxPoolAccountSlotsFlag, | 
					
						
							|  |  |  | 			utils.TxPoolGlobalSlotsFlag, | 
					
						
							|  |  |  | 			utils.TxPoolAccountQueueFlag, | 
					
						
							|  |  |  | 			utils.TxPoolGlobalQueueFlag, | 
					
						
							|  |  |  | 			utils.TxPoolLifetimeFlag, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2016-10-19 14:55:13 +03:00
										 |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "PERFORMANCE TUNING", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			utils.CacheFlag, | 
					
						
							| 
									
										
										
										
											2018-02-05 18:40:32 +02:00
										 |  |  | 			utils.CacheDatabaseFlag, | 
					
						
							| 
									
										
										
										
											2018-11-12 18:47:34 +02:00
										 |  |  | 			utils.CacheTrieFlag, | 
					
						
							| 
									
										
										
										
											2020-07-28 21:30:31 +08:00
										 |  |  | 			utils.CacheTrieJournalFlag, | 
					
						
							|  |  |  | 			utils.CacheTrieRejournalFlag, | 
					
						
							| 
									
										
										
										
											2018-02-05 18:40:32 +02:00
										 |  |  | 			utils.CacheGCFlag, | 
					
						
							| 
									
										
										
										
											2019-11-26 09:48:29 +02:00
										 |  |  | 			utils.CacheSnapshotFlag, | 
					
						
							| 
									
										
										
										
											2019-04-01 11:52:11 +03:00
										 |  |  | 			utils.CacheNoPrefetchFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "ACCOUNT", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							|  |  |  | 			utils.UnlockedAccountFlag, | 
					
						
							|  |  |  | 			utils.PasswordFileFlag, | 
					
						
							| 
									
										
										
											
												accounts, eth, clique, signer: support for external signer API  (#18079)
* accounts, eth, clique: implement external backend + move sighash calc to backend
* signer: implement account_Version on external API
* accounts/external: enable ipc, add copyright
* accounts, internal, signer: formatting
* node: go fmt
* flags: disallow --dev in combo with --externalsigner
* accounts: remove clique-specific signing method, replace with more generic
* accounts, consensus: formatting + fix error in tests
* signer/core: remove (test-) import cycle
* clique: remove unused import
* accounts: remove CliqueHash and avoid dependency on package crypto
* consensus/clique: unduplicate header encoding
											
										 
											2019-02-05 11:23:57 +01:00
										 |  |  | 			utils.ExternalSignerFlag, | 
					
						
							| 
									
										
										
										
											2019-04-04 19:03:10 +08:00
										 |  |  | 			utils.InsecureUnlockAllowedFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "API AND CONSOLE", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							| 
									
										
										
										
											2019-06-12 11:24:24 +03:00
										 |  |  | 			utils.IPCDisabledFlag, | 
					
						
							|  |  |  | 			utils.IPCPathFlag, | 
					
						
							| 
									
										
										
										
											2020-05-05 10:19:17 +02:00
										 |  |  | 			utils.HTTPEnabledFlag, | 
					
						
							|  |  |  | 			utils.HTTPListenAddrFlag, | 
					
						
							|  |  |  | 			utils.HTTPPortFlag, | 
					
						
							|  |  |  | 			utils.HTTPApiFlag, | 
					
						
							|  |  |  | 			utils.HTTPCORSDomainFlag, | 
					
						
							|  |  |  | 			utils.HTTPVirtualHostsFlag, | 
					
						
							| 
									
										
										
										
											2015-12-16 10:58:01 +01:00
										 |  |  | 			utils.WSEnabledFlag, | 
					
						
							|  |  |  | 			utils.WSListenAddrFlag, | 
					
						
							|  |  |  | 			utils.WSPortFlag, | 
					
						
							|  |  |  | 			utils.WSApiFlag, | 
					
						
							| 
									
										
										
										
											2016-03-14 09:38:54 +01:00
										 |  |  | 			utils.WSAllowedOriginsFlag, | 
					
						
							| 
									
										
										
										
											2019-06-12 11:24:24 +03:00
										 |  |  | 			utils.GraphQLEnabledFlag, | 
					
						
							|  |  |  | 			utils.GraphQLCORSDomainFlag, | 
					
						
							|  |  |  | 			utils.GraphQLVirtualHostsFlag, | 
					
						
							| 
									
										
										
										
											2020-05-05 10:19:17 +02:00
										 |  |  | 			utils.RPCGlobalGasCap, | 
					
						
							| 
									
										
										
										
											2020-06-17 15:46:31 +08:00
										 |  |  | 			utils.RPCGlobalTxFeeCap, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			utils.JSpathFlag, | 
					
						
							|  |  |  | 			utils.ExecFlag, | 
					
						
							| 
									
										
										
										
											2016-05-06 12:40:23 +03:00
										 |  |  | 			utils.PreloadJSFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "NETWORKING", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							|  |  |  | 			utils.BootnodesFlag, | 
					
						
							| 
									
										
										
										
											2020-05-11 10:16:32 +02:00
										 |  |  | 			utils.LegacyBootnodesV4Flag, | 
					
						
							|  |  |  | 			utils.LegacyBootnodesV5Flag, | 
					
						
							| 
									
										
										
										
											2020-02-13 14:38:30 +01:00
										 |  |  | 			utils.DNSDiscoveryFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			utils.ListenPortFlag, | 
					
						
							|  |  |  | 			utils.MaxPeersFlag, | 
					
						
							|  |  |  | 			utils.MaxPendingPeersFlag, | 
					
						
							|  |  |  | 			utils.NATFlag, | 
					
						
							|  |  |  | 			utils.NoDiscoverFlag, | 
					
						
							| 
									
										
										
										
											2016-10-19 13:04:55 +02:00
										 |  |  | 			utils.DiscoveryV5Flag, | 
					
						
							| 
									
										
										
										
											2017-04-13 17:12:37 +03:00
										 |  |  | 			utils.NetrestrictFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			utils.NodeKeyFileFlag, | 
					
						
							|  |  |  | 			utils.NodeKeyHexFlag, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "MINER", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							|  |  |  | 			utils.MiningEnabledFlag, | 
					
						
							|  |  |  | 			utils.MinerThreadsFlag, | 
					
						
							| 
									
										
										
										
											2018-08-08 12:15:08 +03:00
										 |  |  | 			utils.MinerNotifyFlag, | 
					
						
							| 
									
										
										
										
											2018-08-15 11:01:49 +03:00
										 |  |  | 			utils.MinerGasPriceFlag, | 
					
						
							|  |  |  | 			utils.MinerGasTargetFlag, | 
					
						
							| 
									
										
										
										
											2018-08-29 12:21:12 +03:00
										 |  |  | 			utils.MinerGasLimitFlag, | 
					
						
							| 
									
										
										
										
											2018-08-15 11:01:49 +03:00
										 |  |  | 			utils.MinerEtherbaseFlag, | 
					
						
							|  |  |  | 			utils.MinerExtraDataFlag, | 
					
						
							| 
									
										
										
										
											2018-08-22 03:56:54 +08:00
										 |  |  | 			utils.MinerRecommitIntervalFlag, | 
					
						
							| 
									
										
										
										
											2018-08-28 21:59:05 +08:00
										 |  |  | 			utils.MinerNoVerfiyFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "GAS PRICE ORACLE", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							| 
									
										
										
										
											2017-04-06 16:20:42 +02:00
										 |  |  | 			utils.GpoBlocksFlag, | 
					
						
							|  |  |  | 			utils.GpoPercentileFlag, | 
					
						
							| 
									
										
										
										
											2020-09-09 23:38:47 +08:00
										 |  |  | 			utils.GpoMaxGasPriceFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		Name: "VIRTUAL MACHINE", | 
					
						
							|  |  |  | 		Flags: []cli.Flag{ | 
					
						
							| 
									
										
										
										
											2017-01-17 11:19:50 +00:00
										 |  |  | 			utils.VMEnableDebugFlag, | 
					
						
							| 
									
										
										
										
											2018-09-20 09:44:35 +02:00
										 |  |  | 			utils.EVMInterpreterFlag, | 
					
						
							|  |  |  | 			utils.EWASMInterpreterFlag, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2016-04-21 12:14:57 +03:00
										 |  |  | 		Name: "LOGGING AND DEBUGGING", | 
					
						
							|  |  |  | 		Flags: append([]cli.Flag{ | 
					
						
							|  |  |  | 			utils.FakePoWFlag, | 
					
						
							| 
									
										
										
										
											2017-04-13 17:12:37 +03:00
										 |  |  | 			utils.NoCompactionFlag, | 
					
						
							| 
									
										
										
										
											2016-04-21 12:14:57 +03:00
										 |  |  | 		}, debug.Flags...), | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2018-07-02 14:51:02 +02:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2019-03-25 10:01:18 +02:00
										 |  |  | 		Name:  "METRICS AND STATS", | 
					
						
							|  |  |  | 		Flags: metricsFlags, | 
					
						
							| 
									
										
										
										
											2018-07-02 14:51:02 +02:00
										 |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2017-06-13 11:49:07 +02:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-09-08 08:47:48 +00:00
										 |  |  | 		Name:  "WHISPER (deprecated)", | 
					
						
							| 
									
										
										
										
											2017-06-21 10:49:14 +02:00
										 |  |  | 		Flags: whisperFlags, | 
					
						
							| 
									
										
										
										
											2017-06-13 11:49:07 +02:00
										 |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2017-04-13 17:12:37 +03:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2020-05-05 10:19:17 +02:00
										 |  |  | 		Name: "ALIASED (deprecated)", | 
					
						
							|  |  |  | 		Flags: append([]cli.Flag{ | 
					
						
							|  |  |  | 			utils.LegacyRPCEnabledFlag, | 
					
						
							|  |  |  | 			utils.LegacyRPCListenAddrFlag, | 
					
						
							|  |  |  | 			utils.LegacyRPCPortFlag, | 
					
						
							|  |  |  | 			utils.LegacyRPCCORSDomainFlag, | 
					
						
							|  |  |  | 			utils.LegacyRPCVirtualHostsFlag, | 
					
						
							|  |  |  | 			utils.LegacyRPCApiFlag, | 
					
						
							|  |  |  | 			utils.LegacyWSListenAddrFlag, | 
					
						
							|  |  |  | 			utils.LegacyWSPortFlag, | 
					
						
							|  |  |  | 			utils.LegacyWSAllowedOriginsFlag, | 
					
						
							|  |  |  | 			utils.LegacyWSApiFlag, | 
					
						
							|  |  |  | 			utils.LegacyGpoBlocksFlag, | 
					
						
							|  |  |  | 			utils.LegacyGpoPercentileFlag, | 
					
						
							| 
									
										
										
										
											2020-08-03 19:40:46 +02:00
										 |  |  | 			utils.LegacyGraphQLListenAddrFlag, | 
					
						
							|  |  |  | 			utils.LegacyGraphQLPortFlag, | 
					
						
							| 
									
										
										
										
											2020-05-05 10:19:17 +02:00
										 |  |  | 		}, debug.DeprecatedFlags...), | 
					
						
							| 
									
										
										
										
											2017-04-13 17:12:37 +03:00
										 |  |  | 	}, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2017-06-13 11:49:07 +02:00
										 |  |  | 		Name: "MISC", | 
					
						
							| 
									
										
										
										
											2020-05-05 10:19:17 +02:00
										 |  |  | 		Flags: []cli.Flag{ | 
					
						
							|  |  |  | 			utils.SnapshotFlag, | 
					
						
							|  |  |  | 			cli.HelpFlag, | 
					
						
							|  |  |  | 		}, | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 	}, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func init() { | 
					
						
							|  |  |  | 	// Override the default app help template | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 	cli.AppHelpTemplate = flags.AppHelpTemplate | 
					
						
							| 
									
										
										
										
											2017-05-25 09:15:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 	// Override the default app help printer, but only for the global app help | 
					
						
							|  |  |  | 	originalHelpPrinter := cli.HelpPrinter | 
					
						
							|  |  |  | 	cli.HelpPrinter = func(w io.Writer, tmpl string, data interface{}) { | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 		if tmpl == flags.AppHelpTemplate { | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			// Iterate over all the flags and add any uncategorized ones | 
					
						
							|  |  |  | 			categorized := make(map[string]struct{}) | 
					
						
							|  |  |  | 			for _, group := range AppHelpFlagGroups { | 
					
						
							|  |  |  | 				for _, flag := range group.Flags { | 
					
						
							|  |  |  | 					categorized[flag.String()] = struct{}{} | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2020-05-05 10:19:17 +02:00
										 |  |  | 			deprecated := make(map[string]struct{}) | 
					
						
							|  |  |  | 			for _, flag := range utils.DeprecatedFlags { | 
					
						
							|  |  |  | 				deprecated[flag.String()] = struct{}{} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			// Only add uncategorized flags if they are not deprecated | 
					
						
							| 
									
										
										
										
											2019-02-14 15:02:11 -08:00
										 |  |  | 			var uncategorized []cli.Flag | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 			for _, flag := range data.(*cli.App).Flags { | 
					
						
							|  |  |  | 				if _, ok := categorized[flag.String()]; !ok { | 
					
						
							| 
									
										
										
										
											2020-05-05 10:19:17 +02:00
										 |  |  | 					if _, ok := deprecated[flag.String()]; !ok { | 
					
						
							|  |  |  | 						uncategorized = append(uncategorized, flag) | 
					
						
							|  |  |  | 					} | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			if len(uncategorized) > 0 { | 
					
						
							|  |  |  | 				// Append all ungategorized options to the misc group | 
					
						
							|  |  |  | 				miscs := len(AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags) | 
					
						
							|  |  |  | 				AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags = append(AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags, uncategorized...) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				// Make sure they are removed afterwards | 
					
						
							|  |  |  | 				defer func() { | 
					
						
							|  |  |  | 					AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags = AppHelpFlagGroups[len(AppHelpFlagGroups)-1].Flags[:miscs] | 
					
						
							|  |  |  | 				}() | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			// Render out custom usage screen | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 			originalHelpPrinter(w, tmpl, flags.HelpData{App: data, FlagGroups: AppHelpFlagGroups}) | 
					
						
							|  |  |  | 		} else if tmpl == flags.CommandHelpTemplate { | 
					
						
							| 
									
										
										
										
											2017-05-25 09:15:51 +02:00
										 |  |  | 			// Iterate over all command specific flags and categorize them | 
					
						
							|  |  |  | 			categorized := make(map[string][]cli.Flag) | 
					
						
							|  |  |  | 			for _, flag := range data.(cli.Command).Flags { | 
					
						
							|  |  |  | 				if _, ok := categorized[flag.String()]; !ok { | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 					categorized[flags.FlagCategory(flag, AppHelpFlagGroups)] = append(categorized[flags.FlagCategory(flag, AppHelpFlagGroups)], flag) | 
					
						
							| 
									
										
										
										
											2017-05-25 09:15:51 +02:00
										 |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			// sort to get a stable ordering | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 			sorted := make([]flags.FlagGroup, 0, len(categorized)) | 
					
						
							| 
									
										
										
										
											2017-05-25 09:15:51 +02:00
										 |  |  | 			for cat, flgs := range categorized { | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 				sorted = append(sorted, flags.FlagGroup{Name: cat, Flags: flgs}) | 
					
						
							| 
									
										
										
										
											2017-05-25 09:15:51 +02:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2020-07-14 10:35:32 +02:00
										 |  |  | 			sort.Sort(flags.ByCategory(sorted)) | 
					
						
							| 
									
										
										
										
											2017-05-25 09:15:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 			// add sorted array to data and render with default printer | 
					
						
							|  |  |  | 			originalHelpPrinter(w, tmpl, map[string]interface{}{ | 
					
						
							|  |  |  | 				"cmd":              data, | 
					
						
							|  |  |  | 				"categorizedFlags": sorted, | 
					
						
							|  |  |  | 			}) | 
					
						
							| 
									
										
										
										
											2015-10-29 19:53:24 +02:00
										 |  |  | 		} else { | 
					
						
							|  |  |  | 			originalHelpPrinter(w, tmpl, data) | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |