diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-01-04 09:36:11 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-01-04 09:36:11 +0100 |
| commit | 7edb811dc232e7843bbc857109cba959e376cf40 (patch) | |
| tree | 5f3524184f1a4e72728bebc9e657c739aaf66311 /src/Main.hs | |
| parent | a25655c2b24535eb1c8bfce61159d9b37200074f (diff) | |
| download | slackbuilder-7edb811dc232e7843bbc857109cba959e376cf40.tar.gz | |
Use consistent directory for cloning repositories
... with submodules.
Diffstat (limited to 'src/Main.hs')
| -rw-r--r-- | src/Main.hs | 25 |
1 files changed, 12 insertions, 13 deletions
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 |
