Class: Devkitkat::Service
- Inherits:
-
Object
- Object
- Devkitkat::Service
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
#command ⇒ Object
Returns the value of attribute command.
8
9
10
|
# File 'lib/devkitkat/service.rb', line 8
def command
@command
end
|
#config ⇒ Object
Returns the value of attribute config.
8
9
10
|
# File 'lib/devkitkat/service.rb', line 8
def config
@config
end
|
#executor ⇒ Object
Returns the value of attribute executor.
8
9
10
|
# File 'lib/devkitkat/service.rb', line 8
def executor
@executor
end
|
#name ⇒ Object
Returns the value of attribute name.
8
9
10
|
# File 'lib/devkitkat/service.rb', line 8
def name
@name
end
|
Instance Method Details
#dir ⇒ Object
41
42
43
|
# File 'lib/devkitkat/service.rb', line 41
def dir
File.join(root_dir, name)
end
|
#execute ⇒ Object
17
18
19
|
# File 'lib/devkitkat/service.rb', line 17
def execute
Executor.new(self).execute
end
|
#log_path ⇒ Object
45
46
47
|
# File 'lib/devkitkat/service.rb', line 45
def log_path
File.join(log_dir, "#{command.script}.log")
end
|
#machine_driver ⇒ Object
63
64
65
|
# File 'lib/devkitkat/service.rb', line 63
def machine_driver
config.service_hash(name).dig('machine', 'driver')
end
|
#root_dir ⇒ Object
37
38
39
|
# File 'lib/devkitkat/service.rb', line 37
def root_dir
File.join(command.kit_root, 'services')
end
|
#script_path ⇒ Object
49
50
51
|
# File 'lib/devkitkat/service.rb', line 49
def script_path
File.join(script_dir, command.script)
end
|
#shared_script_path ⇒ Object
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
53
54
55
|
# File 'lib/devkitkat/service.rb', line 53
def system?
name == 'system'
end
|