File: setup.rb

package info (click to toggle)
ruby-aruba 2.3.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 968 kB
  • sloc: javascript: 6,850; ruby: 4,010; makefile: 5
file content (107 lines) | stat: -rw-r--r-- 3,285 bytes parent folder | download
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# frozen_string_literal: true

module Aruba
  class Setup
    private

    attr_reader :runtime

    public

    def initialize(runtime)
      @runtime = runtime
    end

    def call(clobber = true)
      return if runtime.setup_already_done?

      working_directory(clobber)
      events

      runtime.setup_done

      self
    end

    private

    def working_directory(clobber = true)
      if clobber
        Aruba.platform.rm File.join(runtime.config.root_directory,
                                    runtime.config.working_directory),
                          force: true
      end
      Aruba.platform.mkdir File.join(runtime.config.root_directory,
                                     runtime.config.working_directory)
      Aruba.platform.chdir runtime.config.root_directory
    end

    def events
      runtime.event_bus.register(
        :command_started,
        proc do |event|
          runtime.announcer.announce(:command) { event.entity.commandline }
          runtime.announcer.announce(:timeout, 'exit') { event.entity.exit_timeout }
          runtime.announcer.announce(:timeout, 'io wait') { event.entity.io_wait_timeout }
          runtime.announcer
            .announce(:wait_time, 'startup wait time') { event.entity.startup_wait_time }
          runtime.announcer.announce(:full_environment) { event.entity.environment }
        end
      )

      runtime.event_bus.register(
        :command_started,
        proc do |event|
          runtime.command_monitor.register_command event.entity
          runtime.command_monitor.last_command_started = event.entity
        end
      )

      runtime.event_bus.register(
        :command_stopped,
        proc do |event|
          runtime.announcer.announce(:stdout) { event.entity.stdout }
          runtime.announcer.announce(:stderr) { event.entity.stderr }
          runtime.announcer.announce(:command_content) { event.entity.content }
          runtime.announcer
            .announce(:command_filesystem_status) { event.entity.filesystem_status }
        end
      )

      runtime.event_bus.register(
        :command_stopped,
        proc do |event|
          runtime.command_monitor.last_command_stopped = event.entity
        end
      )

      runtime.event_bus.register(
        %i[changed_environment_variable
           added_environment_variable
           deleted_environment_variable],
        proc do |event|
          runtime.announcer.announce :changed_environment,
                                     event.entity[:changed][:name],
                                     event.entity[:changed][:value]
          runtime.announcer.announce :environment,
                                     event.entity[:changed][:name],
                                     event.entity[:changed][:value]
        end
      )

      runtime.event_bus.register(
        :changed_working_directory,
        proc { |event| runtime.announcer.announce :directory, event.entity[:new] }
      )

      runtime.event_bus.register(
        :changed_configuration,
        proc { |event|
          runtime.announcer.announce :configuration,
                                     event.entity[:changed][:name],
                                     event.entity[:changed][:value]
        }
      )
    end
  end
end