From 7edb811dc232e7843bbc857109cba959e376cf40 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 4 Jan 2024 09:36:11 +0100 Subject: Use consistent directory for cloning repositories ... with submodules. --- src/Main.hs | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src/Main.hs') diff --git a/src/Main.hs b/src/Main.hs index e59cae7..a177b00 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -234,9 +234,9 @@ autoUpdatable = let dubArguments = PackageOwner{ owner = "dlang", name = "dub" } dscannerArguments = PackageOwner{ owner = "dlang-community", name = "D-Scanner" } dcdArguments = PackageOwner{ owner = "dlang-community", name = "DCD" } - latestDub = latestGitHub dubArguments pure - latestDscanner = latestGitHub dscannerArguments pure - latestDcd = latestGitHub dcdArguments pure + latestDub = latestGitHub dubArguments stableTagTransform + latestDscanner = latestGitHub dscannerArguments stableTagTransform + latestDcd = latestGitHub dcdArguments stableTagTransform dubTemplate = Package.DownloadTemplate $ Package.StaticPlaceholder "https://codeload.github.com/dlang/dub/tar.gz/v" :| [Package.VersionPlaceholder] @@ -315,17 +315,16 @@ updateDownload Package{..} Package.Updater{..} = do cloneFromGit :: URI -> Text -> Text -> Text -> SlackBuilderT Package.Download cloneFromGit repo tagPrefix packagePath version = do - repository' <- SlackBuilderT $ asks repository let downloadFileName = URI.unRText $ NonEmpty.last $ snd $ fromJust $ URI.uriPath repo relativeTarball = Text.unpack packagePath (dropExtension (Text.unpack downloadFileName) <> "-" <> Text.unpack version) - tarball = repository' relativeTarball - name' = Text.pack (takeBaseName $ Text.unpack packagePath) - checksum <- clone (URI.render repo) (Text.pack tarball) tagPrefix - uploadCommand (Text.pack relativeTarball) ("/" <> name') - (flip . flip Package.Download) (fromJust checksum) False - <$> liftIO (mkURI $ "https://download.dlackware.com/hosted-sources/" <> name' <> "/" <> downloadFileName) + (uri', checksum) <- fromJust <$> cloneAndUpload (URI.render repo) relativeTarball tagPrefix + pure $ Package.Download + { md5sum = checksum + , is64 = False + , download = uri' + } downloadWithTemplate :: Package.DownloadTemplate -> Bool -> Text -> Text -> SlackBuilderT Package.Download downloadWithTemplate downloadTemplate is64' packagePath version = do @@ -345,7 +344,7 @@ reuploadWithTemplate downloadTemplate commands packagePath version = do let downloadFileName = URI.unRText $ NonEmpty.last $ snd $ fromJust $ URI.uriPath uri' relativeTarball = packagePath <> "/" <> downloadFileName - download' <- handleReupload relativeTarball downloadFileName + download' <- handleReupload (Text.unpack relativeTarball) downloadFileName pure $ Package.Download download' checksum False where @@ -355,14 +354,14 @@ reuploadWithTemplate downloadTemplate commands packagePath version = do case commands of [] -> uploadTarball relativeTarball downloadFileName _ -> - let tarballPath = repository' Text.unpack relativeTarball + let tarballPath = repository' relativeTarball packedDirectory = takeBaseName $ dropExtension tarballPath in liftIO (callProcess "tar" ["xvf", tarballPath]) >> liftIO (traverse (defaultCreateProcess packedDirectory) commands) >> liftIO (callProcess "tar" ["Jcvf", tarballPath, packedDirectory]) >> uploadTarball relativeTarball downloadFileName uploadTarball relativeTarball downloadFileName - = liftIO (putStrLn $ "Upload the source tarball " <> Text.unpack relativeTarball) + = liftIO (putStrLn $ "Upload the source tarball " <> relativeTarball) >> uploadCommand relativeTarball ("/" <> name') >> liftIO (mkURI $ "https://download.dlackware.com/hosted-sources/" <> name' <> "/" <> downloadFileName) defaultCreateProcess cwd' cmdSpec -- cgit v1.2.3