module Aura.Pkgbuild.Records
( hasPkgbuildStored
, storePkgbuilds
, pkgbuildPath
) where
import Aura.Types
import RIO
import RIO.Directory
import RIO.FilePath
import qualified RIO.Text as T
pkgbuildCache :: FilePath
pkgbuildCache = "/var/cache/aura/pkgbuilds/"
pkgbuildPath :: PkgName -> FilePath
pkgbuildPath (PkgName p) = pkgbuildCache </> T.unpack p <.> "pb"
hasPkgbuildStored :: PkgName -> IO Bool
hasPkgbuildStored = doesFileExist . pkgbuildPath
storePkgbuilds :: NonEmpty Buildable -> IO ()
storePkgbuilds bs = do
createDirectoryIfMissing True pkgbuildCache
traverse_ (\p -> writePkgbuild (bName p) (bPkgbuild p)) bs
writePkgbuild :: PkgName -> Pkgbuild -> IO ()
writePkgbuild pn (Pkgbuild pb) = writeFileBinary (pkgbuildPath pn) pb