Class: Devkitkat::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/devkitkat/service.rb,
lib/devkitkat/service/executor.rb,
lib/devkitkat/service/driver/base.rb,
lib/devkitkat/service/driver/none.rb,
lib/devkitkat/service/driver/docker.rb,
lib/devkitkat/service/executor/logger.rb,
lib/devkitkat/service/executor/scripter.rb,
lib/devkitkat/service/executor/variables.rb,
lib/devkitkat/service/driver/docker/image.rb,
lib/devkitkat/service/driver/docker/container.rb,
lib/devkitkat/service/predefined_command/base.rb,
lib/devkitkat/service/predefined_command/exec.rb,
lib/devkitkat/service/predefined_command/poop.rb,
lib/devkitkat/service/predefined_command/pull.rb,
lib/devkitkat/service/predefined_command/clean.rb,
lib/devkitkat/service/predefined_command/clone.rb,
lib/devkitkat/service/concerns/service_initializer.rb,
lib/devkitkat/service/predefined_command/add_script.rb,
lib/devkitkat/service/predefined_command/add_example.rb,
lib/devkitkat/service/predefined_command/reconfigure.rb,
lib/devkitkat/service/predefined_command/add_git_ignore.rb,
lib/devkitkat/service/predefined_command/show_variables.rb,
lib/devkitkat/service/predefined_command/start_container.rb,
lib/devkitkat/service/predefined_command/add_shared_script.rb,
lib/devkitkat/service/predefined_command/remove_containers.rb

Defined Under Namespace

Modules: Concerns Classes: Driver, Executor, PredefinedCommand

Constant Summary collapse

DIVISIONS =
%w[src script data cache log example dockerfile].freeze
SERVICE_PROPERTIES =
%w[repo host port]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, config, command) ⇒ Service

Returns a new instance of Service.



13
14
15
# File 'lib/devkitkat/service.rb', line 13

def initialize(name, config, command)
  @name, @config, @command = name, config, command
end

Instance Attribute Details

#commandObject (readonly)

Returns the value of attribute command.



8
9
10
# File 'lib/devkitkat/service.rb', line 8

def command
  @command
end

#configObject (readonly)

Returns the value of attribute config.



8
9
10
# File 'lib/devkitkat/service.rb', line 8

def config
  @config
end

#executorObject (readonly)

Returns the value of attribute executor.



8
9
10
# File 'lib/devkitkat/service.rb', line 8

def executor
  @executor
end

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/devkitkat/service.rb', line 8

def name
  @name
end

Instance Method Details

#dirObject



41
42
43
# File 'lib/devkitkat/service.rb', line 41

def dir
  File.join(root_dir, name)
end

#executeObject



17
18
19
# File 'lib/devkitkat/service.rb', line 17

def execute
  Executor.new(self).execute
end

#log_pathObject



45
46
47
# File 'lib/devkitkat/service.rb', line 45

def log_path
  File.join(log_dir, "#{command.script}.log")
end

#machine_driverObject



63
64
65
# File 'lib/devkitkat/service.rb', line 63

def machine_driver
  config.service_hash(name).dig('machine', 'driver')
end

#root_dirObject



37
38
39
# File 'lib/devkitkat/service.rb', line 37

def root_dir
  File.join(command.kit_root, 'services')
end

#script_pathObject



49
50
51
# File 'lib/devkitkat/service.rb', line 49

def script_path
  File.join(script_dir, command.script)
end

#shared_script_pathObject



57
58
59
60
61
# File 'lib/devkitkat/service.rb', line 57

def shared_script_path
  return unless system?

  File.join(script_dir, 'shared')
end

#system?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/devkitkat/service.rb', line 53

def system?
  name == 'system'
end