faastruby 0.4.18 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -3
- data/Gemfile.lock +28 -4
- data/README.md +63 -5
- data/faastruby.gemspec +5 -1
- data/lib/faastruby.rb +1 -0
- data/lib/faastruby/api.rb +154 -6
- data/lib/faastruby/base.rb +3 -9
- data/lib/faastruby/cli.rb +39 -12
- data/lib/faastruby/cli/base_command.rb +66 -0
- data/lib/faastruby/cli/commands.rb +122 -59
- data/lib/faastruby/cli/commands/account/base_command.rb +10 -0
- data/lib/faastruby/cli/commands/account/confirm.rb +94 -0
- data/lib/faastruby/cli/commands/account/login.rb +86 -0
- data/lib/faastruby/cli/commands/account/logout.rb +59 -0
- data/lib/faastruby/cli/commands/account/signup.rb +76 -0
- data/lib/faastruby/cli/commands/{function.rb → function/base_command.rb} +2 -11
- data/lib/faastruby/cli/commands/function/build.rb +18 -11
- data/lib/faastruby/cli/commands/function/deploy_to.rb +100 -37
- data/lib/faastruby/cli/commands/function/new.rb +89 -36
- data/lib/faastruby/cli/commands/function/remove_from.rb +21 -6
- data/lib/faastruby/cli/commands/function/run.rb +15 -15
- data/lib/faastruby/cli/commands/function/test.rb +5 -4
- data/lib/faastruby/cli/commands/function/update_context.rb +10 -3
- data/lib/faastruby/cli/commands/function/upgrade.rb +62 -61
- data/lib/faastruby/cli/commands/help.rb +33 -20
- data/lib/faastruby/cli/commands/project/base_command.rb +14 -0
- data/lib/faastruby/cli/commands/project/deploy.rb +114 -0
- data/lib/faastruby/cli/commands/project/down.rb +58 -0
- data/lib/faastruby/cli/commands/project/new.rb +237 -0
- data/lib/faastruby/cli/commands/workspace/cp.rb +107 -0
- data/lib/faastruby/cli/commands/workspace/create.rb +35 -27
- data/lib/faastruby/cli/commands/workspace/destroy.rb +14 -7
- data/lib/faastruby/cli/commands/workspace/list.rb +15 -6
- data/lib/faastruby/cli/commands/workspace/migrate.rb +93 -0
- data/lib/faastruby/cli/commands/workspace/rm.rb +81 -0
- data/lib/faastruby/cli/commands/workspace/update.rb +62 -0
- data/lib/faastruby/cli/credentials.rb +58 -57
- data/lib/faastruby/cli/new_credentials.rb +63 -0
- data/lib/faastruby/cli/package.rb +1 -0
- data/lib/faastruby/cli/template.rb +7 -7
- data/lib/faastruby/local.rb +188 -0
- data/lib/faastruby/local/crystal_runtime.cr +170 -0
- data/lib/faastruby/local/functions.rb +7 -0
- data/lib/faastruby/local/functions/crystal.rb +64 -0
- data/lib/faastruby/local/functions/function.rb +173 -0
- data/lib/faastruby/local/functions/ruby.rb +28 -0
- data/lib/faastruby/local/listeners.rb +5 -0
- data/lib/faastruby/local/listeners/listener.rb +104 -0
- data/lib/faastruby/local/logger.rb +37 -0
- data/lib/faastruby/local/monkey_patch.rb +38 -0
- data/lib/faastruby/local/processors.rb +7 -0
- data/lib/faastruby/local/processors/function.rb +151 -0
- data/lib/faastruby/local/processors/processor.rb +116 -0
- data/lib/faastruby/local/processors/static_file.rb +48 -0
- data/lib/faastruby/local/static_files.rb +5 -0
- data/lib/faastruby/local/static_files/static_file.rb +59 -0
- data/lib/faastruby/server.rb +44 -3
- data/lib/faastruby/server/app.rb +107 -0
- data/lib/faastruby/server/concurrency_controller.rb +50 -50
- data/lib/faastruby/server/config.ru +2 -0
- data/lib/faastruby/server/event.rb +3 -0
- data/lib/faastruby/server/event_hub.rb +7 -6
- data/lib/faastruby/server/local.rb +22 -0
- data/lib/faastruby/server/logger.rb +50 -0
- data/lib/faastruby/server/project_config.rb +44 -0
- data/lib/faastruby/server/puma.rb +4 -0
- data/lib/faastruby/server/response.rb +40 -0
- data/lib/faastruby/server/runner.rb +116 -21
- data/lib/faastruby/server/runner_methods.rb +17 -16
- data/lib/faastruby/server/sentinel.rb +496 -0
- data/lib/faastruby/supported_runtimes.rb +8 -0
- data/lib/faastruby/user.rb +77 -0
- data/lib/faastruby/version.rb +1 -1
- data/lib/faastruby/workspace.rb +36 -3
- data/templates/crystal/example-blank/handler.cr +3 -0
- data/templates/crystal/example/spec/handler_spec.cr +11 -6
- data/templates/public-web/assets/images/background.png +0 -0
- data/templates/public-web/assets/images/ruby.png +0 -0
- data/templates/public-web/assets/javascripts/main.js +1 -0
- data/templates/public-web/assets/stylesheets/main.css +70 -0
- data/templates/public-web/favicon.ico +0 -0
- data/templates/ruby/api-404/handler.rb +6 -0
- data/templates/ruby/api-root/handler.rb +6 -0
- data/templates/ruby/example-blank/handler.rb +0 -23
- data/templates/ruby/web-404/404.html +36 -0
- data/templates/ruby/web-404/handler.rb +3 -0
- data/templates/ruby/web-root/handler.rb +10 -0
- data/templates/ruby/web-root/index.html.erb +37 -0
- data/templates/ruby/web-root/template.rb +13 -0
- metadata +102 -21
- data/exe/faastruby-server +0 -76
- data/lib/faastruby/cli/commands/credentials.rb +0 -11
- data/lib/faastruby/cli/commands/credentials/add.rb +0 -58
- data/lib/faastruby/cli/commands/credentials/list.rb +0 -58
- data/lib/faastruby/cli/commands/workspace.rb +0 -13
- data/lib/faastruby/cli/commands/workspace/deploy.rb +0 -50
- data/templates/crystal/example-blank/README.md +0 -22
- data/templates/crystal/example-blank/spec/handler_spec.cr +0 -8
- data/templates/crystal/example-blank/spec/spec_helper.cr +0 -4
- data/templates/crystal/example-blank/src/handler.cr +0 -25
- data/templates/ruby/example-blank/Gemfile +0 -7
- data/templates/ruby/example-blank/README.md +0 -22
- data/templates/ruby/example-blank/spec/handler_spec.rb +0 -16
- data/templates/ruby/example-blank/spec/spec_helper.rb +0 -3
@@ -0,0 +1,151 @@
|
|
1
|
+
module FaaStRuby
|
2
|
+
module Local
|
3
|
+
class FunctionProcessor < Processor
|
4
|
+
|
5
|
+
def should_ignore?(event)
|
6
|
+
debug "should_ignore?(#{event.inspect})"
|
7
|
+
if present_in_ignore_list?(event.dirname)
|
8
|
+
debug "SKIP #{event}"
|
9
|
+
return true
|
10
|
+
end
|
11
|
+
if is_a_crystal_function?(event.dirname) && is_crystal_handler_binary?(event.filename)
|
12
|
+
debug "ignoring #{event.filename}"
|
13
|
+
return true
|
14
|
+
end
|
15
|
+
return false
|
16
|
+
end
|
17
|
+
|
18
|
+
def is_crystal_handler_binary?(filename)
|
19
|
+
debug "is_crystal_handler_binary?(#{filename.inspect})"
|
20
|
+
filename == 'handler' || filename == 'handler.dwarf'
|
21
|
+
end
|
22
|
+
|
23
|
+
def is_a_crystal_function?(directory)
|
24
|
+
debug "is_a_crystal_function?(#{directory.inspect})"
|
25
|
+
File.file?("#{directory}/handler.cr") || File.file?("#{directory}/src/handler.cr")
|
26
|
+
end
|
27
|
+
|
28
|
+
def added(event)
|
29
|
+
debug "added(#{event.inspect})"
|
30
|
+
# This should trigger
|
31
|
+
# - Initialize function
|
32
|
+
# - Deploy
|
33
|
+
if event.function_created?
|
34
|
+
debug "added: a handler file was added"
|
35
|
+
return new_function(event)
|
36
|
+
end
|
37
|
+
unless event.file_is_a_function_config?
|
38
|
+
debug "added: a file was added"
|
39
|
+
deploy(event)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def modified(event)
|
44
|
+
debug "modified(#{event.inspect})"
|
45
|
+
# This should trigger
|
46
|
+
# - Compile
|
47
|
+
# - Deploy
|
48
|
+
compile_function(event)
|
49
|
+
deploy(event)
|
50
|
+
end
|
51
|
+
|
52
|
+
def removed(event)
|
53
|
+
debug "removed(#{event.inspect})"
|
54
|
+
# This should trigger
|
55
|
+
# - Compile
|
56
|
+
# - Deploy
|
57
|
+
# - Remove from workspace
|
58
|
+
if event.file_is_a_function_config?
|
59
|
+
debug "removed: the file is a function_config"
|
60
|
+
function_name = event.relative_path
|
61
|
+
puts "Function '#{function_name}' was removed."
|
62
|
+
return remove_from_workspace(event)
|
63
|
+
end
|
64
|
+
if !event.file_is_a_handler?
|
65
|
+
debug "removed: the file is NOT a function config"
|
66
|
+
compile_function(event)
|
67
|
+
deploy(event)
|
68
|
+
return true
|
69
|
+
end
|
70
|
+
rescue FaaStRuby::Local::MissingConfigurationFileError
|
71
|
+
nil
|
72
|
+
end
|
73
|
+
|
74
|
+
def compile_function(event)
|
75
|
+
debug "compile_function(#{event.inspect})"
|
76
|
+
# This should run if:
|
77
|
+
# - Modified any file
|
78
|
+
# - Removed any file but handler
|
79
|
+
# - Language is cristal
|
80
|
+
function = Local::Function.that_has_file(event.full_path, event.type)
|
81
|
+
if function.is_a?(Local::CrystalFunction)
|
82
|
+
run(function.name, 'compile') do
|
83
|
+
debug "+ IGNORE #{function.absolute_folder}"
|
84
|
+
add_ignore(function.absolute_folder)
|
85
|
+
function.compile
|
86
|
+
debug "- IGNORE #{function.absolute_folder}"
|
87
|
+
remove_ignore(function.absolute_folder)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def new_function(event)
|
93
|
+
debug "new_function(#{event.inspect})"
|
94
|
+
# This should run if:
|
95
|
+
# - Handler file is added to a folder
|
96
|
+
object = function_object_for_handler(event.filename)
|
97
|
+
function = object.new(
|
98
|
+
absolute_folder: event.dirname,
|
99
|
+
name: File.dirname(event.relative_path),
|
100
|
+
)
|
101
|
+
run(function.name, 'new_function') do
|
102
|
+
debug "+ IGNORE #{event.dirname}"
|
103
|
+
add_ignore(event.dirname)
|
104
|
+
function.initialize_new_function
|
105
|
+
# Needs improvement. We need to wait a bit so it won't try
|
106
|
+
# to deploy or compile newly added functions
|
107
|
+
sleep 1.5
|
108
|
+
debug "- IGNORE #{event.dirname}"
|
109
|
+
remove_ignore(event.dirname)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def function_object_for_handler(filename)
|
114
|
+
debug "function_object_for_handler(#{filename.inspect})"
|
115
|
+
case filename
|
116
|
+
when 'handler.rb'
|
117
|
+
Local::RubyFunction
|
118
|
+
when 'handler.cr'
|
119
|
+
Local::CrystalFunction
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def deploy(event)
|
124
|
+
debug "deploy(#{event.inspect})"
|
125
|
+
return false unless SYNC_ENABLED
|
126
|
+
# This should run when sync is enabled and:
|
127
|
+
# - added any file but handler
|
128
|
+
# - modified any file
|
129
|
+
# - removed any file but handler
|
130
|
+
function = Local::Function.that_has_file(event.full_path, event.type)
|
131
|
+
run(function.name, 'deploy') do
|
132
|
+
debug "+ IGNORE #{function.absolute_folder}"
|
133
|
+
add_ignore(function.absolute_folder)
|
134
|
+
function.deploy
|
135
|
+
debug "- IGNORE #{function.absolute_folder}"
|
136
|
+
remove_ignore(function.absolute_folder)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def remove_from_workspace(event)
|
141
|
+
debug "remove_from_workspace(#{event.inspect})"
|
142
|
+
return false unless SYNC_ENABLED
|
143
|
+
# This should run when sync is enabled and:
|
144
|
+
# - removed handler
|
145
|
+
function = Local::Function.that_has_file(event.full_path, event.type)
|
146
|
+
run(function.name, 'remove_from_workspace') {function.remove_from_workspace}
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
module FaaStRuby
|
2
|
+
module Local
|
3
|
+
class Processor
|
4
|
+
include Local::Logger
|
5
|
+
attr_accessor :queue, :thread
|
6
|
+
def initialize(queue)
|
7
|
+
debug "initialize(#{queue.inspect})"
|
8
|
+
@queue = queue
|
9
|
+
@ignore = {}
|
10
|
+
@mutex = Mutex.new
|
11
|
+
@threads_mutex = Mutex.new
|
12
|
+
@threads = {}
|
13
|
+
end
|
14
|
+
|
15
|
+
def start
|
16
|
+
debug "start"
|
17
|
+
thread = Thread.new do
|
18
|
+
loop do
|
19
|
+
begin
|
20
|
+
event = queue.pop
|
21
|
+
next if should_ignore?(event)
|
22
|
+
send(event.type, event)
|
23
|
+
rescue StandardError => e
|
24
|
+
String.disable_colorization = true
|
25
|
+
STDOUT.puts e.full_message
|
26
|
+
String.disable_colorization = false
|
27
|
+
next
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def should_ignore?(event)
|
34
|
+
debug "should_ignore?(#{event.inspect})"
|
35
|
+
if present_in_ignore_list?(event.dirname)
|
36
|
+
debug "SKIP #{event}"
|
37
|
+
return true
|
38
|
+
end
|
39
|
+
return false
|
40
|
+
end
|
41
|
+
|
42
|
+
def add_ignore(entry)
|
43
|
+
debug "add_ignore(#{entry})"
|
44
|
+
@mutex.synchronize do
|
45
|
+
@ignore[entry] = true
|
46
|
+
debug "Added #{@ignore[entry]}"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def present_in_ignore_list?(entry)
|
51
|
+
debug "present_in_ignore_list(#{entry})"
|
52
|
+
@mutex.synchronize do
|
53
|
+
@ignore[entry] ? debug(true) : debug(false)
|
54
|
+
@ignore[entry]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def remove_ignore(entry)
|
59
|
+
debug "remove_ignore(#{entry})"
|
60
|
+
@mutex.synchronize do
|
61
|
+
@ignore.delete(entry)
|
62
|
+
debug "Removed: is nil? #{@ignore[entry].nil?}"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def run(name, action, &block)
|
67
|
+
debug __method__
|
68
|
+
kill_thread(name, action)
|
69
|
+
add_thread(name, action, &block)
|
70
|
+
end
|
71
|
+
|
72
|
+
def add_thread(name, action, &block)
|
73
|
+
debug __method__
|
74
|
+
@threads_mutex.synchronize do
|
75
|
+
@threads[name] = {action => start_thread(name, action, &block)}
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def start_thread(name, action, &block)
|
80
|
+
debug __method__
|
81
|
+
Thread.new do
|
82
|
+
Thread.report_on_exception = false
|
83
|
+
yield
|
84
|
+
remove_thread_record(name, action)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def get_thread(name, action)
|
89
|
+
debug __method__
|
90
|
+
@threads_mutex.synchronize do
|
91
|
+
return
|
92
|
+
return nil
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def remove_thread_record(name, action)
|
97
|
+
@threads_mutex.synchronize do
|
98
|
+
if @threads[name] && @threads[name][action]
|
99
|
+
@threads[name].delete(action)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def kill_thread(name, action)
|
105
|
+
debug __method__
|
106
|
+
@threads_mutex.synchronize do
|
107
|
+
if @threads[name] && @threads[name][action]
|
108
|
+
puts "Killing previous '#{action}' action for '#{name}'."
|
109
|
+
Thread.kill @threads[name][action]
|
110
|
+
@threads[name].delete(action)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module FaaStRuby
|
2
|
+
module Local
|
3
|
+
class StaticFileProcessor < Processor
|
4
|
+
|
5
|
+
def added(event)
|
6
|
+
debug "added(#{event.inspect})"
|
7
|
+
# This should trigger
|
8
|
+
# - Copy to workspace
|
9
|
+
deploy(event)
|
10
|
+
end
|
11
|
+
|
12
|
+
def modified(event)
|
13
|
+
debug "modified(#{event.inspect})"
|
14
|
+
# This should trigger
|
15
|
+
# - Copy to workspace
|
16
|
+
deploy(event)
|
17
|
+
end
|
18
|
+
|
19
|
+
def removed(event)
|
20
|
+
debug "removed(#{event.inspect})"
|
21
|
+
# This should trigger
|
22
|
+
# - Remove from workspace
|
23
|
+
remove_from_workspace(event)
|
24
|
+
end
|
25
|
+
|
26
|
+
def deploy(event)
|
27
|
+
static_file = StaticFile.new(
|
28
|
+
full_path: event.full_path,
|
29
|
+
relative_path: event.relative_path,
|
30
|
+
filename: event.filename,
|
31
|
+
dirname: event.dirname
|
32
|
+
)
|
33
|
+
run(event.relative_path, 'deploy') {static_file.deploy}
|
34
|
+
end
|
35
|
+
|
36
|
+
def remove_from_workspace(event)
|
37
|
+
static_file = StaticFile.new(
|
38
|
+
full_path: event.full_path,
|
39
|
+
relative_path: event.relative_path,
|
40
|
+
filename: event.filename,
|
41
|
+
dirname: event.dirname
|
42
|
+
)
|
43
|
+
run(event.relative_path, 'remove_from_workspace') {static_file.remove_from_workspace}
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module FaaStRuby
|
2
|
+
module Local
|
3
|
+
class StaticFile
|
4
|
+
include Local::Logger
|
5
|
+
|
6
|
+
def self.full_sync
|
7
|
+
cmd = "faastruby deploy-to #{Local.workspace} -f #{Local.public_dir}"
|
8
|
+
output, status = Open3.capture2e(cmd)
|
9
|
+
String.disable_colorization = true
|
10
|
+
if status.exitstatus == 0
|
11
|
+
output.split("\n").each {|o| puts "#{Time.now} | #{o}" unless o == '---'}
|
12
|
+
puts '---'
|
13
|
+
else
|
14
|
+
STDERR.puts output
|
15
|
+
end
|
16
|
+
String.disable_colorization = false
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize(full_path:, relative_path:, filename:, dirname:)
|
20
|
+
@full_path = full_path
|
21
|
+
@relative_path = relative_path
|
22
|
+
@filename = filename
|
23
|
+
@dirname = dirname
|
24
|
+
@config = YAML.load(File.read("#{Local.public_dir}/faastruby.yml"))
|
25
|
+
@before_build = @config['before_build'] || []
|
26
|
+
end
|
27
|
+
|
28
|
+
def deploy
|
29
|
+
path = "public/#{@relative_path}"
|
30
|
+
cmd = "faastruby cp #{path} #{Local.workspace}:/#{@relative_path}"
|
31
|
+
puts "Running: #{cmd}"
|
32
|
+
output, status = Open3.capture2e(cmd)
|
33
|
+
String.disable_colorization = true
|
34
|
+
if status.exitstatus == 0
|
35
|
+
output.split("\n").each {|o| puts o unless o == '---' || o == "" || o.match(/Copying file to/)}
|
36
|
+
else
|
37
|
+
puts "* [#{path}] Error uploading static file '#{path}' to cloud workspace '#{Local.workspace}':"
|
38
|
+
STDERR.puts output
|
39
|
+
end
|
40
|
+
String.disable_colorization = false
|
41
|
+
end
|
42
|
+
|
43
|
+
def remove_from_workspace
|
44
|
+
path = "public/#{@relative_path}"
|
45
|
+
cmd = "faastruby rm #{Local.workspace}:/#{@relative_path}"
|
46
|
+
puts "Running: #{cmd}"
|
47
|
+
output, status = Open3.capture2e(cmd)
|
48
|
+
String.disable_colorization = true
|
49
|
+
if status.exitstatus == 0
|
50
|
+
output.split("\n").each {|o| puts o unless o == '---'}
|
51
|
+
else
|
52
|
+
puts "* [#{path}] Error removing static file '#{path}' from cloud workspace '#{Local.workspace}':"
|
53
|
+
STDERR.puts output
|
54
|
+
end
|
55
|
+
String.disable_colorization = false
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/faastruby/server.rb
CHANGED
@@ -1,13 +1,54 @@
|
|
1
|
+
require 'yaml'
|
1
2
|
module FaaStRuby
|
2
|
-
|
3
|
-
require 'faastruby/
|
3
|
+
require 'faastruby/version'
|
4
|
+
require 'faastruby/supported_runtimes'
|
5
|
+
|
6
|
+
def self.get_crystal_version
|
7
|
+
ver = `crystal -v|head -n1|cut -f2 -d' ' 2>/dev/null`&.chomp
|
8
|
+
ver == '' ? CRYSTAL_LATEST : ver
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.crystal_present_and_supported?
|
12
|
+
system("which crystal >/dev/null") && SUPPORTED_CRYSTAL.include?(get_crystal_version)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.ruby_present_and_supported?
|
16
|
+
system("which ruby >/dev/null") && SUPPORTED_RUBY.include?(RUBY_VERSION)
|
17
|
+
end
|
18
|
+
|
19
|
+
CRYSTAL_ENABLED = crystal_present_and_supported?
|
20
|
+
RUBY_ENABLED = ruby_present_and_supported?
|
21
|
+
unless RUBY_ENABLED || CRYSTAL_ENABLED
|
22
|
+
puts "\n[ERROR] You need to have one of the following language:version pairs in order to use FaaStRuby Local."
|
23
|
+
puts SUPPORTED_RUNTIMES.join(', ') + "\n"*2
|
24
|
+
exit 1
|
25
|
+
end
|
26
|
+
SERVER_ROOT = Dir.pwd
|
27
|
+
PROJECT_YAML_FILE = ENV['FAASTRUBY_PROJECT_CONFIG_FILE'] || "#{SERVER_ROOT}/project.yml"
|
28
|
+
SECRETS_FILE = ENV['FAASTRUBY_PROJECT_SECRETS_FILE'] || "#{SERVER_ROOT}/secrets.yml"
|
29
|
+
PROJECT_NAME = YAML.load(File.read(PROJECT_YAML_FILE))['project']['name']
|
30
|
+
SYNC_ENABLED = ENV['FAASTRUBY_PROJECT_SYNC_ENABLED']
|
31
|
+
DEPLOY_ENVIRONMENT = ENV['FAASTRUBY_PROJECT_DEPLOY_ENVIRONMENT'] || 'stage'
|
32
|
+
WORKSPACE_NAME = "#{PROJECT_NAME}-#{DEPLOY_ENVIRONMENT}"
|
33
|
+
CHDIR_MUTEX = Mutex.new
|
34
|
+
CRYSTAL_VERSION = get_crystal_version.freeze
|
35
|
+
DEFAULT_CRYSTAL_RUNTIME = "crystal:#{CRYSTAL_VERSION}".freeze
|
36
|
+
DEFAULT_RUBY_RUNTIME = "ruby:#{RUBY_VERSION}".freeze
|
37
|
+
require 'faastruby/server/logger'
|
38
|
+
require 'faastruby/server/project_config'
|
39
|
+
require 'faastruby/server/local'
|
40
|
+
FaaStRuby::Local.start!(deploy_env: DEPLOY_ENVIRONMENT, sync: SYNC_ENABLED, debug: ENV['DEBUG'])
|
41
|
+
|
42
|
+
# require 'faastruby/server/concurrency_controller'
|
4
43
|
require 'faastruby/server/errors'
|
5
44
|
require 'faastruby/server/event_channel'
|
6
45
|
require 'faastruby/server/subscriber'
|
7
|
-
require 'faastruby/server/event_hub'
|
46
|
+
# require 'faastruby/server/event_hub'
|
8
47
|
require 'faastruby/server/runner_methods'
|
9
48
|
require 'faastruby/server/function_object'
|
10
49
|
require 'faastruby/server/runner'
|
11
50
|
require 'faastruby/server/event'
|
12
51
|
require 'faastruby/server/response'
|
52
|
+
# FaaStRuby::EventHub.listen_for_events!
|
53
|
+
require 'faastruby/server/app'
|
13
54
|
end
|