summaryrefslogtreecommitdiff
path: root/puppet/modules/leap/manifests/cli/install.pp
blob: 6a12a4a5a6036054cc2cb7cd6c46e00363fb8eeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# installs leap_cli on node
class leap::cli::install ( $source = false ) {
  if $source {
    # needed for building leap_cli from source
    include ::git
    include ::rubygems
    include ::site_config::packages::build_essential

    class { '::ruby':
      install_dev => true
    }

    class { 'bundler::install': install_method => 'package' }

    Class[Ruby] ->
      Class[rubygems] ->
      Class[::site_config::packages::build_essential] ->
      Class[bundler::install]


    vcsrepo { '/srv/leap/cli':
      ensure   => present,
      force    => true,
      revision => 'develop',
      provider => 'git',
      source   => 'https://leap.se/git/leap_cli.git',
      owner    => 'root',
      group    => 'root',
      notify   => Exec['install_leap_cli'],
      require  => Package['git']
    }

    exec { 'install_leap_cli':
      command     => '/usr/bin/rake build && /usr/bin/rake install',
      cwd         => '/srv/leap/cli',
      user        => 'root',
      environment => 'USER=root',
      refreshonly => true,
      require     => [ Class[bundler::install] ]
    }
  }
  else {
    package { 'leap_cli':
      ensure   => installed,
      provider => gem
    }
  }
}