Class: GNOME2::Rake::SourceDownloadTask
- Inherits:
-
Object
- Object
- GNOME2::Rake::SourceDownloadTask
- Includes:
- Rake::DSL
- Defined in:
- lib/gnome2/rake/source-download-task.rb
Instance Method Summary collapse
- #define ⇒ Object
- #define_download_tasks ⇒ Object
-
#initialize(package) ⇒ SourceDownloadTask
constructor
A new instance of SourceDownloadTask.
Constructor Details
#initialize(package) ⇒ SourceDownloadTask
Returns a new instance of SourceDownloadTask.
29 30 31 |
# File 'lib/gnome2/rake/source-download-task.rb', line 29 def initialize(package) @package = package end |
Instance Method Details
#define ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/gnome2/rake/source-download-task.rb', line 33 def define namespace :source do namespace :downloader do task :before define_download_tasks download_tasks = @package.external_packages.collect do |package| "source:downloader:download:#{package.name}" end task :download => download_tasks task :after end desc "Dowanload sources" task :download => [ "source:downloader:before", "source:downloader:download", "source:downloader:after", ] end end |
#define_download_tasks ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/gnome2/rake/source-download-task.rb', line 54 def define_download_tasks namespace :download do @package.external_packages.each do |package| download_dir = @package.download_dir tar_full_path = download_dir + package.archive_base_name task :before task :after desc "Download #{package.label} into #{download_dir}." # task package[:name] => [:before, tar_full_path.to_s, :after] task package[:name] => tar_full_path.to_s directory_path = tar_full_path.dirname directory directory_path.to_s file tar_full_path.to_s => directory_path.to_s do archive_url = package.archive_url "Downloading... #{archive_url}" open(archive_url) do |downloaded_tar| tar_full_path.open("wb") do |tar_file| tar_file.print(downloaded_tar.read) end end end end end end |