Sha256: 2287e6d1afeda9f55c686bc586ca71a682d71dce2ca063877c800ae436cd8d3f

Contents?: true

Size: 858 Bytes

Versions: 1

Compression:

Stored size: 858 Bytes

Contents

module Caco::Debian
  class AptUpdate < Trailblazer::Operation
    step :apt_needs_update,
      Output(Trailblazer::Activity::Left, :failure) => End(:success)

    step Subprocess(Caco::Executer),
      input: ->(_ctx, **) {{
        command: 'apt-get update'
      }},
      output: { exit_code: :command_exit_code, output: :command_output }

    step :apt_updated

    fail :command_failed

    def apt_needs_update(ctx, force: false, **)
      ctx[:apt_needs_update] = !Caco::Debian.apt_updated
      ctx[:apt_needs_update] = true if force
      ctx[:apt_needs_update]
    end

    def apt_updated(ctx, **)
      ctx[:apt_updated] = true
      Caco::Debian.apt_updated = true
    end

    def command_failed(ctx, command_exit_code:, command_output:, **)
      ctx[:apt_updated] = false
      Caco::Debian.apt_updated = false
      true
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
caco-0.1.0 lib/caco/debian/apt_update.rb