module Proteome.Data.FilesError where import Log (Severity (Error, Warn)) import Ribosome (Report (Report), Reportable (toReport)) data FilesError = BadCwd | NoSuchPath Text | BadRegex Text Text | InvalidFilePath Text | CouldntCreateDir Text deriving stock (Eq, Show) instance Reportable FilesError where toReport BadCwd = Report "internal error" ["FilesError.BadCwd"] Error toReport (NoSuchPath path) = Report ("path doesn't exist: " <> path) ["FilesError.NoSuchPath:", path] Warn toReport (BadRegex var re) = Report ("bad regex in `g:proteome_" <> var <> "`: " <> re) ["FilesError.BadRegex:", var, re] Warn toReport (InvalidFilePath path) = Report ("invalid file path: " <> path) ["FilesError.InvalidFilePath:", path] Warn toReport (CouldntCreateDir path) = Report ("couldn't create directory: " <> path) ["FilesError.CouldntCreateDir:", path] Warn