Skip to content

Commit

Permalink
Merge pull request #63 from input-output-hk/andrea/hackage-urls
Browse files Browse the repository at this point in the history
Implement revision urls, drop "index/" url
  • Loading branch information
andreabedini committed May 30, 2023
2 parents c9d3a0b + c300284 commit 32c033c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 15 deletions.
25 changes: 11 additions & 14 deletions app/Foliage/CmdBuild.hs
Expand Up @@ -101,25 +101,25 @@ 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
( \PreparedPackageVersion {pkgId, pkgTimestamp, cabalFilePath, 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, path)) -> do
copyFileChanged cabalFilePath (outputDir </> "package" </> prettyShow pkgId </> "revision" </> show revNum <.> "cabal")
prepareIndexPkgCabal pkgId timestamp path

-- current version of the cabal file (after the revisions, if any)
copyFileChanged cabalFilePath (outputDir </> "package" </> prettyShow pkgId </> prettyShow (pkgName pkgId) <.> "cabal")

-- 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 +132,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
2 changes: 1 addition & 1 deletion cabal.project
@@ -1,3 +1,3 @@
packages: .
index-state: 2023-03-17T03:33:00Z
with-compiler: ghc-9.2.7
with-compiler: ghc-9.2

0 comments on commit 32c033c

Please sign in to comment.