mirror of
https://codeberg.org/june64/mrvc.git
synced 2026-01-11 08:16:33 +01:00
introduce option for JSON output
Also rename printHomeserverMemberCount option accordingly to fit new output type.
This commit is contained in:
parent
1e9f23d7a9
commit
4964485d29
6 changed files with 67 additions and 20 deletions
|
|
@ -26,7 +26,8 @@ type configOptions struct {
|
|||
recursive configOption[bool]
|
||||
recursionMaxDepth configOption[int]
|
||||
recursionSuggestedOnly configOption[bool]
|
||||
printHomeserverMemberCount configOption[bool]
|
||||
json configOption[bool]
|
||||
outputHomeserverMemberCount configOption[bool]
|
||||
homeserverVersionInfoTimeout configOption[time.Duration]
|
||||
}
|
||||
|
||||
|
|
@ -37,7 +38,8 @@ type Config struct {
|
|||
Recursive bool
|
||||
RecursionMaxDepth *int
|
||||
RecursionSuggestedOnly bool
|
||||
PrintHomeserverMemberCount bool
|
||||
JSON bool
|
||||
OutputHomeserverMemberCount bool
|
||||
HomeserverVersionInfoTimeout time.Duration
|
||||
}
|
||||
|
||||
|
|
@ -48,7 +50,8 @@ var configOpts = configOptions{
|
|||
recursive: configOption[bool]{"recursive", false, "Recursively check the child rooms for the given rooms (spaces) as well.", "MRVC_RECURSIVE"},
|
||||
recursionMaxDepth: configOption[int]{"recursion-max-depth", 0, "The maximum depth when recursively getting child rooms. Defaults to 0, which gets interpreted as the servers default.", "MRVC_RECURSION_MAX_DEPTH"},
|
||||
recursionSuggestedOnly: configOption[bool]{"recursion-suggested-only", false, "Only include the suggested children, when recursively getting child rooms.", "MRVC_RECURSION_SUGGESTED_ONLY"},
|
||||
printHomeserverMemberCount: configOption[bool]{"print-homeserver-member-count", false, "Print the member count for each homeserver.", "MRVC_PRINT_HOMESERVER_MEMBER_COUNT"},
|
||||
json: configOption[bool]{"json", false, "Output result as JSON.", "MRVC_JSON"},
|
||||
outputHomeserverMemberCount: configOption[bool]{"output-homeserver-member-count", false, "Output the member count for each homeserver.", "MRVC_OUTPUT_HOMESERVER_MEMBER_COUNT"},
|
||||
homeserverVersionInfoTimeout: configOption[time.Duration]{"homeserver-version-info-timeout", time.Second * 5, "Timeout for getting the homeservers version information per homeserver.", "MRVC_HOMESERVER_VERSION_INFO_TIMEOUT"},
|
||||
}
|
||||
|
||||
|
|
@ -97,7 +100,8 @@ var tokenFlag = flag.String(configOpts.token.getFlagArgs())
|
|||
var recursiveFlag = flag.Bool(configOpts.recursive.getFlagArgs())
|
||||
var recursionMaxDepthFlag = flag.Int(configOpts.recursionMaxDepth.getFlagArgs())
|
||||
var recursionSuggestedOnlyFlag = flag.Bool(configOpts.recursionSuggestedOnly.getFlagArgs())
|
||||
var printHomeserverMemberCountFlag = flag.Bool(configOpts.printHomeserverMemberCount.getFlagArgs())
|
||||
var jsonFlag = flag.Bool(configOpts.json.getFlagArgs())
|
||||
var outputHomeserverMemberCountFlag = flag.Bool(configOpts.outputHomeserverMemberCount.getFlagArgs())
|
||||
var homeserverVersionInfoTimeoutFlag = flag.Duration(configOpts.homeserverVersionInfoTimeout.getFlagArgs())
|
||||
|
||||
var roomsFlag rooms
|
||||
|
|
@ -160,10 +164,18 @@ func Get() Config {
|
|||
}
|
||||
return parsedEnvVar
|
||||
})
|
||||
config.PrintHomeserverMemberCount = configOpts.printHomeserverMemberCount.getConfigValueWithDefault(printHomeserverMemberCountFlag, visitedFlags, func(envVar string) bool {
|
||||
config.JSON = configOpts.json.getConfigValueWithDefault(jsonFlag, visitedFlags, func(envVar string) bool {
|
||||
parsedEnvVar, err := strconv.ParseBool(envVar)
|
||||
if err != nil {
|
||||
log.Printf("Error parsing %s:\n", configOpts.printHomeserverMemberCount.envVarName)
|
||||
log.Printf("Error parsing %s:\n", configOpts.json.envVarName)
|
||||
log.Fatal(err)
|
||||
}
|
||||
return parsedEnvVar
|
||||
})
|
||||
config.OutputHomeserverMemberCount = configOpts.outputHomeserverMemberCount.getConfigValueWithDefault(outputHomeserverMemberCountFlag, visitedFlags, func(envVar string) bool {
|
||||
parsedEnvVar, err := strconv.ParseBool(envVar)
|
||||
if err != nil {
|
||||
log.Printf("Error parsing %s:\n", configOpts.outputHomeserverMemberCount.envVarName)
|
||||
log.Fatal(err)
|
||||
}
|
||||
return parsedEnvVar
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue