config doc gen: generate formatted code

This commit is contained in:
Łukasz Magiera 2021-07-23 15:18:20 +02:00
parent 3f4973cb41
commit ed7f70e68e
2 changed files with 341 additions and 228 deletions

View File

@ -110,7 +110,7 @@ var Doc = map[string][]DocField{
for _, f := range typ { for _, f := range typ {
fmt.Println("\t\t{") fmt.Println("\t\t{")
fmt.Printf("\t\t\tName: \"%s\",\n", f.Name) fmt.Printf("\t\t\tName: \"%s\",\n", f.Name)
fmt.Printf("\t\t\tType: \"%s\",\n", f.Type) fmt.Printf("\t\t\tType: \"%s\",\n\n", f.Type)
fmt.Printf("\t\t\tComment: `%s`,\n", f.Comment) fmt.Printf("\t\t\tComment: `%s`,\n", f.Comment)
fmt.Println("\t\t},") fmt.Println("\t\t},")
} }

View File

@ -13,16 +13,19 @@ var Doc = map[string][]DocField{
{ {
Name: "ListenAddress", Name: "ListenAddress",
Type: "string", Type: "string",
Comment: `Binding address for the Lotus API`, Comment: `Binding address for the Lotus API`,
}, },
{ {
Name: "RemoteListenAddress", Name: "RemoteListenAddress",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Timeout", Name: "Timeout",
Type: "Duration", Type: "Duration",
Comment: ``, Comment: ``,
}, },
}, },
@ -30,6 +33,7 @@ var Doc = map[string][]DocField{
{ {
Name: "DisableMetadataLog", Name: "DisableMetadataLog",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
}, },
@ -37,11 +41,13 @@ var Doc = map[string][]DocField{
{ {
Name: "Base", Name: "Base",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
{ {
Name: "PerSector", Name: "PerSector",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
}, },
@ -49,11 +55,13 @@ var Doc = map[string][]DocField{
{ {
Name: "EnableSplitstore", Name: "EnableSplitstore",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Splitstore", Name: "Splitstore",
Type: "Splitstore", Type: "Splitstore",
Comment: ``, Comment: ``,
}, },
}, },
@ -61,26 +69,31 @@ var Doc = map[string][]DocField{
{ {
Name: "UseIpfs", Name: "UseIpfs",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "IpfsOnlineMode", Name: "IpfsOnlineMode",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "IpfsMAddr", Name: "IpfsMAddr",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "IpfsUseForRetrieval", Name: "IpfsUseForRetrieval",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "SimultaneousTransfers", Name: "SimultaneousTransfers",
Type: "uint64", Type: "uint64",
Comment: ``, Comment: ``,
}, },
}, },
@ -88,21 +101,25 @@ var Doc = map[string][]DocField{
{ {
Name: "API", Name: "API",
Type: "API", Type: "API",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Backup", Name: "Backup",
Type: "Backup", Type: "Backup",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Libp2p", Name: "Libp2p",
Type: "Libp2p", Type: "Libp2p",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Pubsub", Name: "Pubsub",
Type: "Pubsub", Type: "Pubsub",
Comment: ``, Comment: ``,
}, },
}, },
@ -110,84 +127,100 @@ var Doc = map[string][]DocField{
{ {
Name: "ConsiderOnlineStorageDeals", Name: "ConsiderOnlineStorageDeals",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConsiderOfflineStorageDeals", Name: "ConsiderOfflineStorageDeals",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConsiderOnlineRetrievalDeals", Name: "ConsiderOnlineRetrievalDeals",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConsiderOfflineRetrievalDeals", Name: "ConsiderOfflineRetrievalDeals",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConsiderVerifiedStorageDeals", Name: "ConsiderVerifiedStorageDeals",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConsiderUnverifiedStorageDeals", Name: "ConsiderUnverifiedStorageDeals",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "PieceCidBlocklist", Name: "PieceCidBlocklist",
Type: "[]cid.Cid", Type: "[]cid.Cid",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ExpectedSealDuration", Name: "ExpectedSealDuration",
Type: "Duration", Type: "Duration",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MaxDealStartDelay", Name: "MaxDealStartDelay",
Type: "Duration", Type: "Duration",
Comment: `Maximum amount of time proposed deal StartEpoch can be in future`, Comment: `Maximum amount of time proposed deal StartEpoch can be in future`,
}, },
{ {
Name: "PublishMsgPeriod", Name: "PublishMsgPeriod",
Type: "Duration", Type: "Duration",
Comment: `The amount of time to wait for more deals to arrive before Comment: `The amount of time to wait for more deals to arrive before
publishing`, publishing`,
}, },
{ {
Name: "MaxDealsPerPublishMsg", Name: "MaxDealsPerPublishMsg",
Type: "uint64", Type: "uint64",
Comment: `The maximum number of deals to include in a single PublishStorageDeals Comment: `The maximum number of deals to include in a single PublishStorageDeals
message`, message`,
}, },
{ {
Name: "MaxProviderCollateralMultiplier", Name: "MaxProviderCollateralMultiplier",
Type: "uint64", Type: "uint64",
Comment: `The maximum collateral that the provider will put up against a deal, Comment: `The maximum collateral that the provider will put up against a deal,
as a multiplier of the minimum collateral bound`, as a multiplier of the minimum collateral bound`,
}, },
{ {
Name: "SimultaneousTransfers", Name: "SimultaneousTransfers",
Type: "uint64", Type: "uint64",
Comment: `The maximum number of parallel online data transfers (storage+retrieval)`, Comment: `The maximum number of parallel online data transfers (storage+retrieval)`,
}, },
{ {
Name: "Filter", Name: "Filter",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "RetrievalFilter", Name: "RetrievalFilter",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "RetrievalPricing", Name: "RetrievalPricing",
Type: "*RetrievalPricing", Type: "*RetrievalPricing",
Comment: ``, Comment: ``,
}, },
}, },
@ -195,6 +228,7 @@ as a multiplier of the minimum collateral bound`,
{ {
Name: "DefaultMaxFee", Name: "DefaultMaxFee",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
}, },
@ -202,26 +236,31 @@ as a multiplier of the minimum collateral bound`,
{ {
Name: "Client", Name: "Client",
Type: "Client", Type: "Client",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Metrics", Name: "Metrics",
Type: "Metrics", Type: "Metrics",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Wallet", Name: "Wallet",
Type: "Wallet", Type: "Wallet",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Fees", Name: "Fees",
Type: "FeeConfig", Type: "FeeConfig",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Chainstore", Name: "Chainstore",
Type: "Chainstore", Type: "Chainstore",
Comment: ``, Comment: ``,
}, },
}, },
@ -229,41 +268,49 @@ as a multiplier of the minimum collateral bound`,
{ {
Name: "ListenAddresses", Name: "ListenAddresses",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "AnnounceAddresses", Name: "AnnounceAddresses",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "NoAnnounceAddresses", Name: "NoAnnounceAddresses",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "BootstrapPeers", Name: "BootstrapPeers",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ProtectedPeers", Name: "ProtectedPeers",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConnMgrLow", Name: "ConnMgrLow",
Type: "uint", Type: "uint",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConnMgrHigh", Name: "ConnMgrHigh",
Type: "uint", Type: "uint",
Comment: ``, Comment: ``,
}, },
{ {
Name: "ConnMgrGrace", Name: "ConnMgrGrace",
Type: "Duration", Type: "Duration",
Comment: ``, Comment: ``,
}, },
}, },
@ -271,11 +318,13 @@ as a multiplier of the minimum collateral bound`,
{ {
Name: "Nickname", Name: "Nickname",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "HeadNotifs", Name: "HeadNotifs",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
}, },
@ -283,32 +332,38 @@ as a multiplier of the minimum collateral bound`,
{ {
Name: "PreCommitControl", Name: "PreCommitControl",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "CommitControl", Name: "CommitControl",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "TerminateControl", Name: "TerminateControl",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "DealPublishControl", Name: "DealPublishControl",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "DisableOwnerFallback", Name: "DisableOwnerFallback",
Type: "bool", Type: "bool",
Comment: `DisableOwnerFallback disables usage of the owner address for messages Comment: `DisableOwnerFallback disables usage of the owner address for messages
sent automatically`, sent automatically`,
}, },
{ {
Name: "DisableWorkerFallback", Name: "DisableWorkerFallback",
Type: "bool", Type: "bool",
Comment: `DisableWorkerFallback disables usage of the worker address for messages Comment: `DisableWorkerFallback disables usage of the worker address for messages
sent automatically, if control addresses are configured. sent automatically, if control addresses are configured.
A control address that doesn't have enough funds will still be chosen A control address that doesn't have enough funds will still be chosen
@ -319,41 +374,49 @@ over the worker address if this flag is set.`,
{ {
Name: "MaxPreCommitGasFee", Name: "MaxPreCommitGasFee",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MaxCommitGasFee", Name: "MaxCommitGasFee",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MaxPreCommitBatchGasFee", Name: "MaxPreCommitBatchGasFee",
Type: "BatchFeeConfig", Type: "BatchFeeConfig",
Comment: `maxBatchFee = maxBase + maxPerSector * nSectors`, Comment: `maxBatchFee = maxBase + maxPerSector * nSectors`,
}, },
{ {
Name: "MaxCommitBatchGasFee", Name: "MaxCommitBatchGasFee",
Type: "BatchFeeConfig", Type: "BatchFeeConfig",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MaxTerminateGasFee", Name: "MaxTerminateGasFee",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MaxWindowPoStGasFee", Name: "MaxWindowPoStGasFee",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MaxPublishDealsFee", Name: "MaxPublishDealsFee",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MaxMarketBalanceAddFee", Name: "MaxMarketBalanceAddFee",
Type: "types.FIL", Type: "types.FIL",
Comment: ``, Comment: ``,
}, },
}, },
@ -361,31 +424,37 @@ over the worker address if this flag is set.`,
{ {
Name: "EnableMining", Name: "EnableMining",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "EnableSealing", Name: "EnableSealing",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "EnableSectorStorage", Name: "EnableSectorStorage",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "EnableMarkets", Name: "EnableMarkets",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "SealerApiInfo", Name: "SealerApiInfo",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "SectorIndexApiInfo", Name: "SectorIndexApiInfo",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
}, },
@ -393,21 +462,25 @@ over the worker address if this flag is set.`,
{ {
Name: "Bootstrapper", Name: "Bootstrapper",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "DirectPeers", Name: "DirectPeers",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "IPColocationWhitelist", Name: "IPColocationWhitelist",
Type: "[]string", Type: "[]string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "RemoteTracer", Name: "RemoteTracer",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
}, },
@ -415,16 +488,19 @@ over the worker address if this flag is set.`,
{ {
Name: "Strategy", Name: "Strategy",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Default", Name: "Default",
Type: "*RetrievalPricingDefault", Type: "*RetrievalPricingDefault",
Comment: ``, Comment: ``,
}, },
{ {
Name: "External", Name: "External",
Type: "*RetrievalPricingExternal", Type: "*RetrievalPricingExternal",
Comment: ``, Comment: ``,
}, },
}, },
@ -432,6 +508,7 @@ over the worker address if this flag is set.`,
{ {
Name: "VerifiedDealsFreeTransfer", Name: "VerifiedDealsFreeTransfer",
Type: "bool", Type: "bool",
Comment: `VerifiedDealsFreeTransfer configures zero fees for data transfer for a retrieval deal Comment: `VerifiedDealsFreeTransfer configures zero fees for data transfer for a retrieval deal
of a payloadCid that belongs to a verified storage deal. of a payloadCid that belongs to a verified storage deal.
This parameter is ONLY applicable if the retrieval pricing policy strategy has been configured to "default". This parameter is ONLY applicable if the retrieval pricing policy strategy has been configured to "default".
@ -442,6 +519,7 @@ default value is true`,
{ {
Name: "Path", Name: "Path",
Type: "string", Type: "string",
Comment: `Path of the external script that will be run to price a retrieval deal. Comment: `Path of the external script that will be run to price a retrieval deal.
This parameter is ONLY applicable if the retrieval pricing policy strategy has been configured to "external".`, This parameter is ONLY applicable if the retrieval pricing policy strategy has been configured to "external".`,
}, },
@ -450,112 +528,134 @@ This parameter is ONLY applicable if the retrieval pricing policy strategy has b
{ {
Name: "MaxWaitDealsSectors", Name: "MaxWaitDealsSectors",
Type: "uint64", Type: "uint64",
Comment: `0 = no limit`, Comment: `0 = no limit`,
}, },
{ {
Name: "MaxSealingSectors", Name: "MaxSealingSectors",
Type: "uint64", Type: "uint64",
Comment: `includes failed, 0 = no limit`, Comment: `includes failed, 0 = no limit`,
}, },
{ {
Name: "MaxSealingSectorsForDeals", Name: "MaxSealingSectorsForDeals",
Type: "uint64", Type: "uint64",
Comment: `includes failed, 0 = no limit`, Comment: `includes failed, 0 = no limit`,
}, },
{ {
Name: "WaitDealsDelay", Name: "WaitDealsDelay",
Type: "Duration", Type: "Duration",
Comment: ``, Comment: ``,
}, },
{ {
Name: "AlwaysKeepUnsealedCopy", Name: "AlwaysKeepUnsealedCopy",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "FinalizeEarly", Name: "FinalizeEarly",
Type: "bool", Type: "bool",
Comment: `Run sector finalization before submitting sector proof to the chain`, Comment: `Run sector finalization before submitting sector proof to the chain`,
}, },
{ {
Name: "CollateralFromMinerBalance", Name: "CollateralFromMinerBalance",
Type: "bool", Type: "bool",
Comment: `Whether to use available miner balance for sector collateral instead of sending it with each message`, Comment: `Whether to use available miner balance for sector collateral instead of sending it with each message`,
}, },
{ {
Name: "AvailableBalanceBuffer", Name: "AvailableBalanceBuffer",
Type: "types.FIL", Type: "types.FIL",
Comment: `Minimum available balance to keep in the miner actor before sending it with messages`, Comment: `Minimum available balance to keep in the miner actor before sending it with messages`,
}, },
{ {
Name: "DisableCollateralFallback", Name: "DisableCollateralFallback",
Type: "bool", Type: "bool",
Comment: `Don't send collateral with messages even if there is no available balance in the miner actor`, Comment: `Don't send collateral with messages even if there is no available balance in the miner actor`,
}, },
{ {
Name: "BatchPreCommits", Name: "BatchPreCommits",
Type: "bool", Type: "bool",
Comment: `enable / disable precommit batching (takes effect after nv13)`, Comment: `enable / disable precommit batching (takes effect after nv13)`,
}, },
{ {
Name: "MaxPreCommitBatch", Name: "MaxPreCommitBatch",
Type: "int", Type: "int",
Comment: `maximum precommit batch size - batches will be sent immediately above this size`, Comment: `maximum precommit batch size - batches will be sent immediately above this size`,
}, },
{ {
Name: "PreCommitBatchWait", Name: "PreCommitBatchWait",
Type: "Duration", Type: "Duration",
Comment: `how long to wait before submitting a batch after crossing the minimum batch size`, Comment: `how long to wait before submitting a batch after crossing the minimum batch size`,
}, },
{ {
Name: "PreCommitBatchSlack", Name: "PreCommitBatchSlack",
Type: "Duration", Type: "Duration",
Comment: `time buffer for forceful batch submission before sectors/deal in batch would start expiring`, Comment: `time buffer for forceful batch submission before sectors/deal in batch would start expiring`,
}, },
{ {
Name: "AggregateCommits", Name: "AggregateCommits",
Type: "bool", Type: "bool",
Comment: `enable / disable commit aggregation (takes effect after nv13)`, Comment: `enable / disable commit aggregation (takes effect after nv13)`,
}, },
{ {
Name: "MinCommitBatch", Name: "MinCommitBatch",
Type: "int", Type: "int",
Comment: `maximum batched commit size - batches will be sent immediately above this size`, Comment: `maximum batched commit size - batches will be sent immediately above this size`,
}, },
{ {
Name: "MaxCommitBatch", Name: "MaxCommitBatch",
Type: "int", Type: "int",
Comment: ``, Comment: ``,
}, },
{ {
Name: "CommitBatchWait", Name: "CommitBatchWait",
Type: "Duration", Type: "Duration",
Comment: `how long to wait before submitting a batch after crossing the minimum batch size`, Comment: `how long to wait before submitting a batch after crossing the minimum batch size`,
}, },
{ {
Name: "CommitBatchSlack", Name: "CommitBatchSlack",
Type: "Duration", Type: "Duration",
Comment: `time buffer for forceful batch submission before sectors/deals in batch would start expiring`, Comment: `time buffer for forceful batch submission before sectors/deals in batch would start expiring`,
}, },
{ {
Name: "AggregateAboveBaseFee", Name: "AggregateAboveBaseFee",
Type: "types.FIL", Type: "types.FIL",
Comment: `network BaseFee below which to stop doing commit aggregation, instead Comment: `network BaseFee below which to stop doing commit aggregation, instead
submitting proofs to the chain individually`, submitting proofs to the chain individually`,
}, },
{ {
Name: "TerminateBatchMax", Name: "TerminateBatchMax",
Type: "uint64", Type: "uint64",
Comment: ``, Comment: ``,
}, },
{ {
Name: "TerminateBatchMin", Name: "TerminateBatchMin",
Type: "uint64", Type: "uint64",
Comment: ``, Comment: ``,
}, },
{ {
Name: "TerminateBatchWait", Name: "TerminateBatchWait",
Type: "Duration", Type: "Duration",
Comment: ``, Comment: ``,
}, },
}, },
@ -563,21 +663,25 @@ submitting proofs to the chain individually`,
{ {
Name: "ColdStoreType", Name: "ColdStoreType",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "HotStoreType", Name: "HotStoreType",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "MarkSetType", Name: "MarkSetType",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "HotStoreMessageRetention", Name: "HotStoreMessageRetention",
Type: "uint64", Type: "uint64",
Comment: ``, Comment: ``,
}, },
}, },
@ -585,31 +689,37 @@ submitting proofs to the chain individually`,
{ {
Name: "Subsystems", Name: "Subsystems",
Type: "MinerSubsystemConfig", Type: "MinerSubsystemConfig",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Dealmaking", Name: "Dealmaking",
Type: "DealmakingConfig", Type: "DealmakingConfig",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Sealing", Name: "Sealing",
Type: "SealingConfig", Type: "SealingConfig",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Storage", Name: "Storage",
Type: "sectorstorage.SealerConfig", Type: "sectorstorage.SealerConfig",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Fees", Name: "Fees",
Type: "MinerFeeConfig", Type: "MinerFeeConfig",
Comment: ``, Comment: ``,
}, },
{ {
Name: "Addresses", Name: "Addresses",
Type: "MinerAddressConfig", Type: "MinerAddressConfig",
Comment: ``, Comment: ``,
}, },
}, },
@ -617,16 +727,19 @@ submitting proofs to the chain individually`,
{ {
Name: "RemoteBackend", Name: "RemoteBackend",
Type: "string", Type: "string",
Comment: ``, Comment: ``,
}, },
{ {
Name: "EnableLedger", Name: "EnableLedger",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
{ {
Name: "DisableLocal", Name: "DisableLocal",
Type: "bool", Type: "bool",
Comment: ``, Comment: ``,
}, },
}, },