diff options
| author | Eugen Wissner <belka@caraus.de> | 2023-07-06 21:59:25 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2023-07-06 21:59:25 +0200 |
| commit | a0788d2f3a3f3928bb74c8b666fc1bae91466286 (patch) | |
| tree | 74f12ff4342936dee9faf45996bc5013e4684e77 | |
| parent | df4c9b4ae96afa7d8e7e44dbefc9e5035c3666db (diff) | |
| download | slackbuilder-a0788d2f3a3f3928bb74c8b666fc1bae91466286.tar.gz | |
Ask for updating packages
| -rw-r--r-- | Rakefile | 61 |
1 files changed, 51 insertions, 10 deletions
@@ -15,8 +15,8 @@ require_relative 'lib/up2date' task :dmd, [:version] do |_, arguments| raise 'Version is not specified.' unless arguments.key? :version - dub_version = '1.32.1' - dscanner_version = '0.14.0' + dub_version = '1.33.0' + dscanner_version = '0.15.2' dcd_version = '0.15.2' SlackBuilder::DmdTools.update_dmd arguments[:version] @@ -137,22 +137,63 @@ task 'rdiff-backup', [:version] do |_, arguments| commit 'system/rdiff-backup', arguments[:version] end +module SlackBuilder + class Updater + include Rake::FileUtilsExt + + def update(version) + raise NotImplementedError + end + end + + class UniversalCtags < Updater + def update(version) + package = create_package version + + uri = "https://github.com/universal-ctags/ctags/archive/#{version}/ctags-#{version}.tar.gz" + tarball = "slackbuilds/development/universal-ctags/ctags-#{version}.tar.gz" + checksum = SlackBuilder.download URI(uri), tarball + download = "https://download.dlackware.com/hosted-sources/universal-ctags/ctags-#{version}.tar.gz" + + write_info package, downloads: [Download.new(download, checksum.hexdigest)] + update_slackbuild_version 'development/universal-ctags', version + sh 'scp', tarball, "#{CONFIG[:remote_path]}/universal-ctags" + + commit 'development/universal-ctags', version + end + + private + + def create_package(version) + Package.new 'development/universal-ctags', + version: version, + homepage: 'https://ctags.io/', + requires: ['%README%'] + end + end +end + php_transform = proc do |version| version.delete_prefix 'php-' if version.match?(/^php-8\.2\.[[:digit:]+]$/) end AUTO_UPDATABLE = { - 'universal-ctags' => SlackBuilder::GitHub.new('universal-ctags', 'ctags'), - 'composer' => SlackBuilder::Packagist.new('composer', 'composer'), - 'php82' => SlackBuilder::GitHub.new('php', 'php-src', php_transform), - 'rdiff-backup' => SlackBuilder::GitHub.new('rdiff-backup', 'rdiff-backup'), - 'librsync' => SlackBuilder::GitHub.new('librsync', 'librsync'), - 'jitsi-meet-desktop' => SlackBuilder::GitHub.new('jitsi', 'jitsi-meet-electron'), - 'dmd' => SlackBuilder::LatestText.new('https://downloads.dlang.org/releases/LATEST') + 'universal-ctags' => [SlackBuilder::GitHub.new('universal-ctags', 'ctags'), SlackBuilder::UniversalCtags.new], + 'composer' => [SlackBuilder::Packagist.new('composer', 'composer')], + 'php82' => [SlackBuilder::GitHub.new('php', 'php-src', php_transform)], + 'rdiff-backup' => [SlackBuilder::GitHub.new('rdiff-backup', 'rdiff-backup')], + 'librsync' => [SlackBuilder::GitHub.new('librsync', 'librsync')], + 'jitsi-meet-desktop' => [SlackBuilder::GitHub.new('jitsi', 'jitsi-meet-electron')], + 'dmd' => [SlackBuilder::LatestText.new('https://downloads.dlang.org/releases/LATEST')] }.freeze task :up2date do AUTO_UPDATABLE.each do |key, value| - SlackBuilder.check_for_latest key, value + repository, updater = value + latest_version = SlackBuilder.check_for_latest key, repository + next if latest_version.nil? || updater.nil? + + puts "Would like to update #{key} to #{latest_version} (y/N)? " + updater.update latest_version if $stdin.gets.chomp.downcase.start_with? 'y' end end |
