From a7c3330aff5d2e7ebef80ff4bca5409fba835e2d Mon Sep 17 00:00:00 2001 From: Andrei Coman Date: Tue, 3 Dec 2013 17:33:46 +0200 Subject: [PATCH 1/2] COOK-4061 Create virtualenv directory recursively if it doesn't exist --- providers/virtualenv.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/providers/virtualenv.rb b/providers/virtualenv.rb index 5a4d3dd..d8c61b1 100644 --- a/providers/virtualenv.rb +++ b/providers/virtualenv.rb @@ -31,6 +31,7 @@ def whyrun_supported? directory new_resource.path do user new_resource.owner if new_resource.owner group new_resource.group if new_resource.group + recursive true end Chef::Log.info("Creating virtualenv #{new_resource} at #{new_resource.path}") interpreter = new_resource.interpreter ? " --python=#{new_resource.interpreter}" : "" From ec3b6e63330defdfa7664a5ed8218b43b4fab689 Mon Sep 17 00:00:00 2001 From: Andrei Coman Date: Mon, 6 Jan 2014 10:42:04 +0200 Subject: [PATCH 2/2] COOK-4183 Set $HOME to new owner as in the pip provider when shelling out --- providers/virtualenv.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/providers/virtualenv.rb b/providers/virtualenv.rb index d8c61b1..530ed1d 100644 --- a/providers/virtualenv.rb +++ b/providers/virtualenv.rb @@ -35,10 +35,9 @@ def whyrun_supported? end Chef::Log.info("Creating virtualenv #{new_resource} at #{new_resource.path}") interpreter = new_resource.interpreter ? " --python=#{new_resource.interpreter}" : "" - execute "#{virtualenv_cmd}#{interpreter} #{new_resource.options} #{new_resource.path}" do - user new_resource.owner if new_resource.owner - group new_resource.group if new_resource.group - end + options = { :user => new_resource.owner, :group => new_resource.group } + options[:environment] = { 'HOME' => ::File.expand_path("~#{new_resource.owner}") } if new_resource.owner + shell_out!("#{virtualenv_cmd}#{interpreter} #{new_resource.options} #{new_resource.path}", options) new_resource.updated_by_last_action(true) end end