From 3700d5769d0c9b07accc39b556339cefc735aa9d Mon Sep 17 00:00:00 2001 From: Luka Vandervelden Date: Thu, 22 Aug 2019 20:09:15 +0200 Subject: [PATCH] Non-tar files in sources are copied and not extracted. --- src/recipe.cr | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) 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