1 #!/opt/puppetlabs/puppet/bin/ruby
2 # frozen_string_literal: true
9 cmd = ['apt-get', action]
10 cmd << '-y' if ['upgrade', 'dist-upgrade', 'autoremove'].include?(action)
11 if ['upgrade', 'dist-upgrade'].include?(action)
12 ENV['DEBIAN_FRONTEND'] = 'noninteractive'
14 cmd << 'Dpkg::Options="--force-confdef"'
16 cmd << 'Dpkg::Options="--force-confold"'
18 stdout, stderr, status = Open3.capture3(*cmd)
19 raise Puppet::Error, stderr if status != 0
21 { status: stdout.strip }
24 params = JSON.parse($stdin.read)
25 action = params['action']
28 result = apt_get(action)
31 rescue Puppet::Error => e
32 puts({ status: 'failure', error: e.message }.to_json)