From 2910a89d6c59b997a3896f05c6ad7fb65c26f813 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Wed, 9 Dec 2020 18:28:42 +0100 Subject: Add autoupdater --- Rakefile | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 Rakefile (limited to 'Rakefile') diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..e4f9333 --- /dev/null +++ b/Rakefile @@ -0,0 +1,110 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at https://mozilla.org/MPL/2.0/. + +# frozen_string_literal: true + +require 'infra/rake/ruby' +require 'digest/md5' +require 'net/http' +require_relative 'lib/package' +require_relative 'lib/download' + +task :dmd do + version = '2.094.2' + dub_version = '1.23.0' + dscanner_version = '0.11.0' + dcd_version = '0.13.1' + tarball_name = "dmd.#{version}.linux.tar.xz" + + uri = URI "http://downloads.dlang.org/releases/2.x/#{version}/#{tarball_name}" + checksum = { + dmd: download(uri, "slackbuilds/development/dmd/#{tarball_name}").hexdigest, + } + + package = Package.new 'development/dmd', + version: version, + homepage: 'https://dlang.org' + + write_info package, + download: [uri.to_s], + md5sum: [checksum[:dmd]] + + update_slackbuild_version 'development/dmd', version + commit 'development/dmd', version + + uri = URI "https://codeload.github.com/dlang/tools/tar.gz/v#{version}" + checksum[:tools] = download_and_deploy uri, + "development/d-tools/tools-#{version}.tar.gz" + + uri = URI "https://codeload.github.com/dlang/dub/tar.gz/v#{dub_version}" + checksum[:dub] = download_and_deploy uri, + "development/d-tools/dub-#{dub_version}.tar.gz" + + checksum[:dscanner] = clone 'https://github.com/dlang-community/D-Scanner.git', + "development/d-tools/D-Scanner-#{dscanner_version}.tar.xz" + checksum[:dcd] = clone 'https://github.com/dlang-community/DCD.git', + "development/d-tools/DCD-#{dcd_version}.tar.xz" + + package = Package.new 'development/d-tools', + version: version, + homepage: 'https://dlang.org', + requires: ['dmd'] + + write_info package, + download: [ + hosted_sources("/d-tools/dub-#{dub_version}.tar.gz"), + hosted_sources("/d-tools/tools-#{version}.tar.gz"), + hosted_sources("/d-tools/D-Scanner-#{dscanner_version}.tar.xz"), + hosted_sources("/d-tools/DCD-#{dcd_version}.tar.xz") + ], + md5sum: [ + checksum[:dub], + checksum[:tools], + checksum[:dscanner], + checksum[:dcd] + ] + + slackbuild_filename = 'slackbuilds/development/d-tools/d-tools.SlackBuild' + slackbuild_contents = File.read(slackbuild_filename) + .gsub(/^DUB_VERSION=\${DUB_VERSION:-.+/, + "DUB_VERSION=${DUB_VERSION:-#{dub_version}}") + .gsub(/^DSCANNER_VERSION=\${DSCANNER_VERSION:-.+/, + "DSCANNER_VERSION=${DSCANNER_VERSION:-#{dscanner_version}}") + .gsub(/^DCD_VERSION=\${DCD_VERSION:-.+/, + "DCD_VERSION=${DCD_VERSION:-#{dcd_version}}") + File.open(slackbuild_filename, 'w') { |file| file.puts slackbuild_contents } + + update_slackbuild_version 'development/d-tools', version + commit 'development/d-tools', version +end + +task :composer do + version = '2.0.7' + + package = Package.new 'development/composer', + version: version, + homepage: 'https://getcomposer.org/' + + uri = URI "https://getcomposer.org/download/#{version}/composer.phar" + checksum = download uri, 'slackbuilds/development/composer/composer.phar' + write_info package, + download: ["https://getcomposer.org/download/#{version}/composer.phar"], + md5sum: [checksum.hexdigest] + update_slackbuild_version 'development/composer', version + + commit 'development/composer', version +end + +task 'universal-ctags' do + ENV['COMMIT'] = `git ls-remote https://github.com/universal-ctags/ctags.git master` + .split + .first + ENV['HASH'] = ENV['COMMIT'][0...7] + + sh 'git', 'clone', '--recurse-submodules', 'https://github.com/universal-ctags/ctags.git', "ctags-#{ENV['COMMIT']}" + + rm_rf ["ctags-#{ENV['COMMIT']}/.git", "ctags-#{ENV['COMMIT']}/.gitignore"], secure: true + + sh 'bash', 'scripts/universal-ctags.sh' +end -- cgit v1.2.3