From 4105ffa91f85d66e631383211b5d074b04fc0d3c Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 13 Oct 2023 19:34:02 +0200 Subject: [PATCH] rdiff-backup: Migrated --- Rakefile | 20 ------------------- app/Main.hs | 34 ++++++++++++++++++++------------- app/SlackBuilder/CommandLine.hs | 10 +--------- lib/up2date.rb | 15 --------------- 4 files changed, 22 insertions(+), 57 deletions(-) diff --git a/Rakefile b/Rakefile index 4af411a..9cf1c36 100644 --- a/Rakefile +++ b/Rakefile @@ -64,27 +64,7 @@ task :webex do commit 'network/webex', package.version end -task 'rdiff-backup', [:version] do |_, arguments| - raise 'Version is not specified.' unless arguments.key? :version - - package = Package.new 'system/rdiff-backup', - version: arguments[:version], - homepage: 'https://rdiff-backup.net/', - requires: ['librsync'] - - uri = "https://github.com/rdiff-backup/rdiff-backup/releases/download/v#{arguments[:version]}/rdiff-backup-#{arguments[:version]}.tar.gz" - tarball = "system/rdiff-backup/rdiff-backup-#{arguments[:version]}.tar.gz" - checksum = SlackBuilder.download_and_deploy URI(uri), tarball - download = "https://download.dlackware.com/hosted-sources/rdiff-backup/rdiff-backup-#{arguments[:version]}.tar.gz" - - write_info package, downloads: [Download.new(download, checksum)] - update_slackbuild_version 'system/rdiff-backup', arguments[:version] - - commit 'system/rdiff-backup', arguments[:version] -end - AUTO_UPDATABLE = { - 'rdiff-backup' => [SlackBuilder::GitHub.new('rdiff-backup', 'rdiff-backup', 'rdiff-backup')], 'dmd' => [SlackBuilder::LatestText.new('https://downloads.dlang.org/releases/LATEST')] }.freeze diff --git a/app/Main.hs b/app/Main.hs index ec9f310..99be344 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -93,7 +93,8 @@ autoUpdatable = , transform = Nothing } checkVersion x - | Text.isPrefixOf "php-8.2." x = Text.stripPrefix "php-" x + | not $ Text.isInfixOf "RC" x + , Text.isPrefixOf "php-8.2." x = Text.stripPrefix "php-" x | otherwise = Nothing latest' = latestGitHub ghArguments checkVersion template = Package.DownloadTemplate @@ -127,6 +128,25 @@ autoUpdatable = , name = "kitty" , reupload = Just [RawCommand "go" ["mod", "vendor"]] } + , Package + { latest = + let ghArguments = GhArguments + { owner = "rdiff-backup" + , name = "rdiff-backup" + , transform = Nothing + } + latest' = latestGitHub ghArguments $ Text.stripPrefix "v" + template = Package.DownloadTemplate + $ Package.StaticPlaceholder "https://github.com/rdiff-backup/rdiff-backup/releases/download/v" + :| Package.VersionPlaceholder + : Package.StaticPlaceholder "/rdiff-backup-" + : Package.VersionPlaceholder + : [Package.StaticPlaceholder ".tar.gz"] + in Package.Updater latest' template + , category = "system" + , name = "rdiff-backup" + , reupload = Just mempty + } ] up2Date :: SlackBuilderT () @@ -227,8 +247,6 @@ main = do where executeCommand = \case TextCommand textArguments -> latestText textArguments - GhCommand ghArguments@GhArguments{ transform } - -> latestGitHub ghArguments $ chooseTransformFunction transform SlackBuildCommand packagePath version -> updateSlackBuildVersion packagePath version >> pure Nothing CommitCommand packagePath version -> @@ -246,13 +264,3 @@ main = do DownloadAndDeployCommand uri' tarball -> fmap (Text.pack . show) <$> downloadAndDeploy uri' tarball Up2DateCommand -> up2Date >> pure Nothing - chooseTransformFunction (Just "php") = phpTransform - chooseTransformFunction (Just "rdiff-backup") = Text.stripPrefix "v" - chooseTransformFunction _ = stripPrefix "v" - stripPrefix prefix string = Just - $ fromMaybe string - $ Text.stripPrefix prefix string - phpTransform version - | (majorPrefix, _patchVersion) <- Text.breakOnEnd "." version - , majorPrefix == "php-8.2." = Just $ Text.drop (Text.length "php-") version - | otherwise = Nothing diff --git a/app/SlackBuilder/CommandLine.hs b/app/SlackBuilder/CommandLine.hs index 8624cb8..1375b6e 100644 --- a/app/SlackBuilder/CommandLine.hs +++ b/app/SlackBuilder/CommandLine.hs @@ -16,12 +16,11 @@ import Options.Applicative , info , fullDesc , subparser - , command, optional + , command, ) data SlackBuilderCommand = TextCommand TextArguments - | GhCommand GhArguments | SlackBuildCommand Text Text | CommitCommand Text Text | ExistsCommand Text @@ -49,19 +48,12 @@ newtype TextArguments = TextArguments Text textArguments :: Parser TextArguments textArguments = TextArguments <$> argument str (metavar "URL") -ghArguments :: Parser GhArguments -ghArguments = GhArguments - <$> argument str (metavar "OWNER") - <*> argument str (metavar "NAME") - <*> optional (argument str (metavar "TRANSFORM")) - slackBuilderParser :: ParserInfo SlackBuilderCommand slackBuilderParser = info slackBuilderCommand fullDesc slackBuilderCommand :: Parser SlackBuilderCommand slackBuilderCommand = subparser $ command "text" (info (TextCommand <$> textArguments) mempty) - <> command "github" (info (GhCommand <$> ghArguments) mempty) <> command "slackbuild" (info slackBuildCommand mempty) <> command "commit" (info commitCommand mempty) <> command "exists" (info existsCommand mempty) diff --git a/lib/up2date.rb b/lib/up2date.rb index 5d63da3..c74dc90 100644 --- a/lib/up2date.rb +++ b/lib/up2date.rb @@ -20,21 +20,6 @@ module SlackBuilder end end - # Reads the list fo tags from the GitHub API. - class GitHub < Repository - def initialize(owner, name, version_transform = nil) - super() - - @owner = owner - @name = name - @version_transform = version_transform - end - - def latest - `./bin/slackbuilder github #{@owner} #{@name} #{@version_transform}`.strip - end - end - # Reads a remote LATEST file. class LatestText < Repository def initialize(latest_url)