(main) Allow stdlib 8.0.0
[puppet-modules/puppetlabs-apt.git] / tasks / init.rb
1 #!/opt/puppetlabs/puppet/bin/ruby
2 # frozen_string_literal: true
3
4 require 'json'
5 require 'open3'
6 require 'puppet'
7
8 def apt_get(action)
9   cmd = ['apt-get', action]
10   cmd << '-y' if ['upgrade', 'dist-upgrade', 'autoremove'].include?(action)
11   stdout, stderr, status = Open3.capture3(*cmd)
12   raise Puppet::Error, stderr if status != 0
13   { status: stdout.strip }
14 end
15
16 params = JSON.parse(STDIN.read)
17 action = params['action']
18
19 begin
20   result = apt_get(action)
21   puts result.to_json
22   exit 0
23 rescue Puppet::Error => e
24   puts({ status: 'failure', error: e.message }.to_json)
25   exit 1
26 end