diff --git a/src/recipe.cr b/src/recipe.cr index 8792a93..7b8b011 100644 --- a/src/recipe.cr +++ b/src/recipe.cr @@ -180,6 +180,8 @@ class Package::Recipe def download sources.each do |url| + next if url.scheme == "file" + unless File.exists? url.filename status = @context.run @context.sources_directory, "wget", [ url.to_s, "-O", url.filename ] @@ -194,15 +196,22 @@ class Package::Recipe sources.each do |url| basename = url.filename - status = @context.run( - building_directory, - "bsdtar", [ - "xvf", - @context.sources_directory + "/" + url.filename - ] - ) + if basename.match /\.(tar\.(gz|xz|bz2|lzma)|tgz)$/ + puts ":: Extracting '#{url.filename}'" + status = @context.run( + building_directory, + "bsdtar", [ + "xf", + @context.sources_directory + "/" + url.filename + ] + ) - raise ExtractionError.new self, url unless status.success? + raise ExtractionError.new self, url unless status.success? + else + puts ":: Copying '#{url.filename}'" + FileUtils.cp "#{@context.sources_directory}/#{url.filename}", + url.filename + end end end