diff --git a/src/recipe.cr b/src/recipe.cr index 7b8b011..177be5d 100644 --- a/src/recipe.cr +++ b/src/recipe.cr @@ -57,6 +57,8 @@ class Package::Recipe getter sources = Sources.new getter packages = Array(Package).new + property recipe_directory = "." + @working_uuid : UUID = UUID.random def initialize(@context, @name, @version) @@ -78,6 +80,8 @@ class Package::Recipe name : String? = nil version : String? = nil + @recipe_directory = File.dirname filename + raise "Could not parse `#{filename}`" if specs.nil? specs.assignments.each do |key, value| @@ -209,7 +213,14 @@ class Package::Recipe raise ExtractionError.new self, url unless status.success? else puts ":: Copying '#{url.filename}'" - FileUtils.cp "#{@context.sources_directory}/#{url.filename}", + + directory = if url.scheme == "file" + @recipe_directory + else + @context.sources_directory + end + + FileUtils.cp "#{directory}/#{url.filename}", url.filename end end