From 48dbf5461d5b1c32025e393c5a2e06f4424d80f2 Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Thu, 14 Jul 2022 13:00:34 +0200 Subject: [PATCH] package: hard-code cwd to /tmp to execute brew If cwd is a directory the brew user can't write to (e.g. if running with bolt as root where the working directory is a private subdirectory under /tmp) brew fails to run. Resolves #101 Signed-off-by: Frank Lichtenheld --- lib/puppet/provider/package/brew.rb | 8 ++++++-- lib/puppet/provider/package/brewcask.rb | 8 ++++++-- lib/puppet/provider/package/homebrew.rb | 8 ++++++-- lib/puppet/provider/package/tap.rb | 8 ++++++-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/lib/puppet/provider/package/brew.rb b/lib/puppet/provider/package/brew.rb index 3477f585..103f4509 100644 --- a/lib/puppet/provider/package/brew.rb +++ b/lib/puppet/provider/package/brew.rb @@ -43,11 +43,15 @@ def self.execute(cmd, failonfail = false, combine = false) if Puppet.features.bundled_environment? Bundler.with_clean_env do super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end else super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end end diff --git a/lib/puppet/provider/package/brewcask.rb b/lib/puppet/provider/package/brewcask.rb index d5ea76bb..06fc2f24 100644 --- a/lib/puppet/provider/package/brewcask.rb +++ b/lib/puppet/provider/package/brewcask.rb @@ -43,11 +43,15 @@ def self.execute(cmd, failonfail = false, combine = false) if Puppet.features.bundled_environment? Bundler.with_clean_env do super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end else super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end end diff --git a/lib/puppet/provider/package/homebrew.rb b/lib/puppet/provider/package/homebrew.rb index 18e35f37..21cc3987 100644 --- a/lib/puppet/provider/package/homebrew.rb +++ b/lib/puppet/provider/package/homebrew.rb @@ -43,11 +43,15 @@ def self.execute(cmd, failonfail = false, combine = false) if Puppet.features.bundled_environment? Bundler.with_clean_env do super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end else super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end end diff --git a/lib/puppet/provider/package/tap.rb b/lib/puppet/provider/package/tap.rb index e5eeda19..323d5828 100644 --- a/lib/puppet/provider/package/tap.rb +++ b/lib/puppet/provider/package/tap.rb @@ -41,11 +41,15 @@ def self.execute(cmd, failonfail = false, combine = false) if Puppet.features.bundled_environment? Bundler.with_clean_env do super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end else super(cmd, :uid => uid, :gid => gid, :combine => combine, - :custom_environment => { 'HOME' => home }, :failonfail => failonfail) + :custom_environment => { 'HOME' => home }, + :cwd => '/tmp', + :failonfail => failonfail) end end