From 23aff19ae16a069c944205c1d5922c1b9e7e59f7 Mon Sep 17 00:00:00 2001 From: Mathias Brodala Date: Thu, 29 Jan 2015 12:54:52 +0100 Subject: [PATCH] Add user option to composer::project This option allows for setting a specific user to create composer projects with. This is useful e.g. to have a SSH key of a user used for Git clones. Fixes #10 --- manifests/project.pp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/manifests/project.pp b/manifests/project.pp index fb93bb6..feba1eb 100644 --- a/manifests/project.pp +++ b/manifests/project.pp @@ -42,6 +42,9 @@ # [*lock*] # Toggles whether to update only the hash in composer.lock to avoid "out of date" warnings. Default: false # +# [*user*] +# The owner of the project. Default: 'root' +# define composer::project ( $ensure = present, @@ -52,6 +55,7 @@ $scripts = true, $custom_inst = true, $lock = false, + $user = 'root', ) { include composer @@ -82,12 +86,17 @@ $create_project_opts = join(flatten([$dev_opt, "--prefer-${prefer}"]), ' ') $install_opts = join(flatten([$dev_opt, $script_opt, $custom_inst_opt, "--prefer-${prefer}" ]), ' ') $update_opts = join(flatten([$dev_opt, $script_opt, $custom_inst_opt, "--prefer-${prefer}", $lock_opt ]), ' ') + $user_home = $user ? { + 'root' => '/root', + default => "/home/${user}", + } Exec { cwd => $target, path => $::path, provider => 'posix', - environment => 'HOME=/root', + user => $user, + environment => "HOME=${user_home}", require => Class['composer'], }