Skip to content

Commit

Permalink
Implement revision urls, drop "index/" url
Browse files Browse the repository at this point in the history
  • Loading branch information
andreabedini committed May 30, 2023
1 parent c9d3a0b commit f294fcf
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions app/Foliage/CmdBuild.hs
Expand Up @@ -101,25 +101,22 @@ buildAction

makeAllPackageVersionsPage currentTime outputDir packageVersions

when doWritePackageMeta $
makeMetadataFile outputDir packageVersions

void $ forP packageVersions $ makePackageVersionPage outputDir

void $
forP packageVersions $ \PreparedPackageVersion {pkgId, cabalFilePath} -> do
let PackageIdentifier {pkgName, pkgVersion} = pkgId
copyFileChanged cabalFilePath (outputDir </> "index" </> prettyShow pkgName </> prettyShow pkgVersion </> prettyShow pkgName <.> "cabal")
when doWritePackageMeta $
makeMetadataFile outputDir packageVersions

cabalEntries <-
foldMap
( \PreparedPackageVersion {pkgId, pkgTimestamp, originalCabalFilePath, cabalFileRevisions} -> do
-- original cabal file, with its timestamp (if specified)
let cabalFileTimestamp = fromMaybe currentTime pkgTimestamp
cf <- prepareIndexPkgCabal pkgId cabalFileTimestamp originalCabalFilePath
copyFileChanged originalCabalFilePath (outputDir </> "package" </> prettyShow pkgId </> "revision" </> "0" <.> "cabal")
cf <- prepareIndexPkgCabal pkgId (fromMaybe currentTime pkgTimestamp) originalCabalFilePath

-- all revised cabal files, with their timestamp
revcf <- for cabalFileRevisions $ uncurry (prepareIndexPkgCabal pkgId)
revcf <- for (zip [1 :: Int ..] cabalFileRevisions) $ \(revNum, (timestamp, cabalFilePath)) -> do
copyFileChanged cabalFilePath (outputDir </> "package" </> prettyShow pkgId </> "revision" </> show revNum <.> "cabal")
prepareIndexPkgCabal pkgId timestamp cabalFilePath

-- WARN: So far Foliage allows publishing a package and a cabal file revision with the same timestamp
-- This accidentally works because 1) the following inserts the original cabal file before the revisions
Expand All @@ -132,10 +129,7 @@ buildAction

metadataEntries <-
forP packageVersions $ \ppv@PreparedPackageVersion {pkgId, pkgTimestamp} -> do
let PackageIdentifier {pkgName, pkgVersion} = pkgId
targets <- prepareIndexPkgMetadata expiryTime ppv
let path = outputDir </> "index" </> prettyShow pkgName </> prettyShow pkgVersion </> "package.json"
liftIO $ BL.writeFile path $ renderSignedJSON targetKeys targets
pure $
mkTarEntry
(renderSignedJSON targetKeys targets)
Expand Down

0 comments on commit f294fcf

Please sign in to comment.