Fix of critical bug with config files and easier error handling
This commit is contained in:
parent
d4e470b442
commit
0911886487
26
src/bk.nim
26
src/bk.nim
|
@ -20,25 +20,25 @@ const
|
|||
7: "Sun",
|
||||
]
|
||||
|
||||
proc error(message: string) {.noReturn.} =
|
||||
stderr.writeLine("Error: " & message)
|
||||
quit QuitFailure
|
||||
|
||||
proc loadConfig(configFile = defaultConfigFile): Config =
|
||||
try:
|
||||
defaultConfigFile.readFile.parseJson.to(Config)
|
||||
configFile.readFile.parseJson.to(Config)
|
||||
except IOError:
|
||||
stderr.writeLine "Error: Can't read the config file. Are you signed in?"
|
||||
quit QuitFailure
|
||||
error "Can't read the config file. Are you signed in?"
|
||||
except JsonParsingError, JsonKindError:
|
||||
stderr.writeLine "Error: Invalid config file. Make sure it's in JSON format."
|
||||
quit QuitFailure
|
||||
error "Invalid config file. Make sure it's in JSON format."
|
||||
except KeyError:
|
||||
stderr.writeLine "Error: The config file doesn't contain all necessary fields."
|
||||
quit QuitFailure
|
||||
error "The config file doesn't contain all necessary fields."
|
||||
|
||||
proc saveConfig(configFile = defaultConfigFile, config: Config) =
|
||||
try:
|
||||
configFile.writeFile((%*config).pretty)
|
||||
except IOError:
|
||||
stderr.writeLine "Error: Can't write the config file."
|
||||
quit QuitFailure
|
||||
error "Can't write the config file."
|
||||
|
||||
template withBakalari(configFile: string, body: untyped): untyped =
|
||||
var config = configFile.loadConfig
|
||||
|
@ -89,8 +89,7 @@ proc timetable(
|
|||
try:
|
||||
date.parse("yyyyMMdd")
|
||||
except TimeParseError:
|
||||
stderr.writeLine "Error: Can't parse the date. Make sure it's in YYYYMMDD format."
|
||||
quit QuitFailure
|
||||
error "Can't parse the date. Make sure it's in YYYYMMDD format."
|
||||
else:
|
||||
nextWeek ? (now() + 1.weeks) ! now()
|
||||
withBakalari(configFile):
|
||||
|
@ -137,7 +136,6 @@ try:
|
|||
}],
|
||||
)
|
||||
except OSError:
|
||||
stderr.writeLine "Error: Generic OS error. Check your internet connection."
|
||||
error "Generic OS error. Check your internet connection."
|
||||
except SslError:
|
||||
stderr.writeLine "Error: Connection interrupted. Check your internet connection."
|
||||
quit QuitFailure
|
||||
error "Connection interrupted. Check your internet connection."
|
||||
|
|
Loading…
Reference in New Issue