class hydra { $hydra_dir = "/usr/local/hydra" # the needed packages package { "git-core": ensure => installed, } exec { "clone hydra": command => "if [ ! -d $hydra_dir ]; then git clone git://git.sarava.org/hydra.git $hydra_dir; fi", creates => "$hydra_dir", path => ["/usr/bin", "/usr/sbin"], } file { "$hydra_dir": owner => "root", group => "root", mode => 0644, require => Exec["clone hydra"], } file { "$hydra_dir/hydra": owner => "root", group => "root", mode => 0755, require => File["$hydra_dir"], } file { ["/usr/local/sbin/hydra", "/usr/local/sbin/hydractl"]: ensure => link, target => "$hydra_dir/hydra", require => File["$hydra_dir/hydra"], } } include hydra