sends 404s if we can't find the package rather than just blowing up and going 500

This commit is contained in:
Keagan McClelland
2021-11-23 14:09:11 -07:00
parent 2a3069818f
commit c6acbd383c
2 changed files with 12 additions and 5 deletions

View File

@@ -96,7 +96,8 @@ import UnliftIO ( MonadUnliftIO
)
import UnliftIO ( tryPutMVar )
import UnliftIO.Concurrent ( forkIO )
import UnliftIO.Directory ( getFileSize
import UnliftIO.Directory ( doesPathExist
, getFileSize
, listDirectory
, removeFile
, renameFile
@@ -257,9 +258,13 @@ getHash pkg version = do
getPackage :: (MonadResource m, MonadReader r m, Has PkgRepo r)
=> PkgId
-> Version
-> m (Integer, ConduitT () ByteString m ())
-> m (Maybe (Integer, ConduitT () ByteString m ()))
getPackage pkg version = do
root <- asks pkgRepoFileRoot
let pkgPath = root </> show pkg </> show version </> show pkg <.> "s9pk"
n <- getFileSize pkgPath
pure (n, sourceFile pkgPath)
found <- doesPathExist pkgPath
if found
then do
n <- getFileSize pkgPath
pure . Just $ (n, sourceFile pkgPath)
else pure Nothing