diff options
| -rw-r--r-- | src/cache.gleam | 7 | ||||
| -rw-r--r-- | src/mayu.gleam | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/cache.gleam b/src/cache.gleam index f3baade..17fc168 100644 --- a/src/cache.gleam +++ b/src/cache.gleam @@ -55,7 +55,12 @@ fn load_theme(theme) -> Dict(Int, CachedImage) { fn parse_digit_filename(file) { case string.split(file, ".") { - [digit, _extension] -> int.parse(digit) + [digit, _extension] -> + case int.parse(digit) { + Ok(parsed_digit) if parsed_digit >= 0 && parsed_digit <= 9 -> + Ok(parsed_digit) + _ -> Error(Nil) + } _ -> Error(Nil) } } diff --git a/src/mayu.gleam b/src/mayu.gleam index 0d9fcf9..edb912d 100644 --- a/src/mayu.gleam +++ b/src/mayu.gleam @@ -12,7 +12,16 @@ import wisp pub fn main() { wisp.configure_logger() - let _ = simplifile.create_directory("./data") + case simplifile.create_directory("./data") { + Ok(_) | Error(simplifile.Eexist) -> Nil + Error(error) -> { + wisp.log_error( + "Failed to create ./data directory: " + <> simplifile.describe_error(error), + ) + panic as "cannot create data directory" + } + } let image_cache = cache.load_themes() let version_tag = case envoy.get("MAYU_VERSION") { Ok(version) -> "(v" <> version <> ")" |