summaryrefslogtreecommitdiff
path: root/lib/SlackBuilder
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SlackBuilder')
-rw-r--r--lib/SlackBuilder/Info.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/SlackBuilder/Info.hs b/lib/SlackBuilder/Info.hs
index 7617e15..e2f5018 100644
--- a/lib/SlackBuilder/Info.hs
+++ b/lib/SlackBuilder/Info.hs
@@ -65,9 +65,11 @@ packageDownloads variableName = string (variableName <> "=\"")
<* string "\"\n"
hexDigit :: GenParser Word8
-hexDigit =
- let digitPair = count 2 hexDigitChar
- in fst . head . readHex . fmap (toEnum . fromIntegral) <$> digitPair
+hexDigit = count 2 hexDigitChar
+ >>= extractNumber . readHex . fmap (toEnum . fromIntegral)
+ where
+ extractNumber [(number, "")] = pure number
+ extractNumber _ = fail "Unable to convert a 2-digit hexadecimal number"
packageChecksum :: GenParser ByteString
packageChecksum = ByteString.pack <$> count 16 hexDigit