summaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-01-04 09:36:11 +0100
committerEugen Wissner <belka@caraus.de>2024-01-04 09:36:11 +0100
commit7edb811dc232e7843bbc857109cba959e376cf40 (patch)
tree5f3524184f1a4e72728bebc9e657c739aaf66311 /src/Main.hs
parenta25655c2b24535eb1c8bfce61159d9b37200074f (diff)
downloadslackbuilder-7edb811dc232e7843bbc857109cba959e376cf40.tar.gz
Use consistent directory for cloning repositories
... with submodules.
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs25
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