aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cache.gleam7
-rw-r--r--src/mayu.gleam11
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 <> ")"