faastruby 0.4.18 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -3
  3. data/Gemfile.lock +28 -4
  4. data/README.md +63 -5
  5. data/faastruby.gemspec +5 -1
  6. data/lib/faastruby.rb +1 -0
  7. data/lib/faastruby/api.rb +154 -6
  8. data/lib/faastruby/base.rb +3 -9
  9. data/lib/faastruby/cli.rb +39 -12
  10. data/lib/faastruby/cli/base_command.rb +66 -0
  11. data/lib/faastruby/cli/commands.rb +122 -59
  12. data/lib/faastruby/cli/commands/account/base_command.rb +10 -0
  13. data/lib/faastruby/cli/commands/account/confirm.rb +94 -0
  14. data/lib/faastruby/cli/commands/account/login.rb +86 -0
  15. data/lib/faastruby/cli/commands/account/logout.rb +59 -0
  16. data/lib/faastruby/cli/commands/account/signup.rb +76 -0
  17. data/lib/faastruby/cli/commands/{function.rb → function/base_command.rb} +2 -11
  18. data/lib/faastruby/cli/commands/function/build.rb +18 -11
  19. data/lib/faastruby/cli/commands/function/deploy_to.rb +100 -37
  20. data/lib/faastruby/cli/commands/function/new.rb +89 -36
  21. data/lib/faastruby/cli/commands/function/remove_from.rb +21 -6
  22. data/lib/faastruby/cli/commands/function/run.rb +15 -15
  23. data/lib/faastruby/cli/commands/function/test.rb +5 -4
  24. data/lib/faastruby/cli/commands/function/update_context.rb +10 -3
  25. data/lib/faastruby/cli/commands/function/upgrade.rb +62 -61
  26. data/lib/faastruby/cli/commands/help.rb +33 -20
  27. data/lib/faastruby/cli/commands/project/base_command.rb +14 -0
  28. data/lib/faastruby/cli/commands/project/deploy.rb +114 -0
  29. data/lib/faastruby/cli/commands/project/down.rb +58 -0
  30. data/lib/faastruby/cli/commands/project/new.rb +237 -0
  31. data/lib/faastruby/cli/commands/workspace/cp.rb +107 -0
  32. data/lib/faastruby/cli/commands/workspace/create.rb +35 -27
  33. data/lib/faastruby/cli/commands/workspace/destroy.rb +14 -7
  34. data/lib/faastruby/cli/commands/workspace/list.rb +15 -6
  35. data/lib/faastruby/cli/commands/workspace/migrate.rb +93 -0
  36. data/lib/faastruby/cli/commands/workspace/rm.rb +81 -0
  37. data/lib/faastruby/cli/commands/workspace/update.rb +62 -0
  38. data/lib/faastruby/cli/credentials.rb +58 -57
  39. data/lib/faastruby/cli/new_credentials.rb +63 -0
  40. data/lib/faastruby/cli/package.rb +1 -0
  41. data/lib/faastruby/cli/template.rb +7 -7
  42. data/lib/faastruby/local.rb +188 -0
  43. data/lib/faastruby/local/crystal_runtime.cr +170 -0
  44. data/lib/faastruby/local/functions.rb +7 -0
  45. data/lib/faastruby/local/functions/crystal.rb +64 -0
  46. data/lib/faastruby/local/functions/function.rb +173 -0
  47. data/lib/faastruby/local/functions/ruby.rb +28 -0
  48. data/lib/faastruby/local/listeners.rb +5 -0
  49. data/lib/faastruby/local/listeners/listener.rb +104 -0
  50. data/lib/faastruby/local/logger.rb +37 -0
  51. data/lib/faastruby/local/monkey_patch.rb +38 -0
  52. data/lib/faastruby/local/processors.rb +7 -0
  53. data/lib/faastruby/local/processors/function.rb +151 -0
  54. data/lib/faastruby/local/processors/processor.rb +116 -0
  55. data/lib/faastruby/local/processors/static_file.rb +48 -0
  56. data/lib/faastruby/local/static_files.rb +5 -0
  57. data/lib/faastruby/local/static_files/static_file.rb +59 -0
  58. data/lib/faastruby/server.rb +44 -3
  59. data/lib/faastruby/server/app.rb +107 -0
  60. data/lib/faastruby/server/concurrency_controller.rb +50 -50
  61. data/lib/faastruby/server/config.ru +2 -0
  62. data/lib/faastruby/server/event.rb +3 -0
  63. data/lib/faastruby/server/event_hub.rb +7 -6
  64. data/lib/faastruby/server/local.rb +22 -0
  65. data/lib/faastruby/server/logger.rb +50 -0
  66. data/lib/faastruby/server/project_config.rb +44 -0
  67. data/lib/faastruby/server/puma.rb +4 -0
  68. data/lib/faastruby/server/response.rb +40 -0
  69. data/lib/faastruby/server/runner.rb +116 -21
  70. data/lib/faastruby/server/runner_methods.rb +17 -16
  71. data/lib/faastruby/server/sentinel.rb +496 -0
  72. data/lib/faastruby/supported_runtimes.rb +8 -0
  73. data/lib/faastruby/user.rb +77 -0
  74. data/lib/faastruby/version.rb +1 -1
  75. data/lib/faastruby/workspace.rb +36 -3
  76. data/templates/crystal/example-blank/handler.cr +3 -0
  77. data/templates/crystal/example/spec/handler_spec.cr +11 -6
  78. data/templates/public-web/assets/images/background.png +0 -0
  79. data/templates/public-web/assets/images/ruby.png +0 -0
  80. data/templates/public-web/assets/javascripts/main.js +1 -0
  81. data/templates/public-web/assets/stylesheets/main.css +70 -0
  82. data/templates/public-web/favicon.ico +0 -0
  83. data/templates/ruby/api-404/handler.rb +6 -0
  84. data/templates/ruby/api-root/handler.rb +6 -0
  85. data/templates/ruby/example-blank/handler.rb +0 -23
  86. data/templates/ruby/web-404/404.html +36 -0
  87. data/templates/ruby/web-404/handler.rb +3 -0
  88. data/templates/ruby/web-root/handler.rb +10 -0
  89. data/templates/ruby/web-root/index.html.erb +37 -0
  90. data/templates/ruby/web-root/template.rb +13 -0
  91. metadata +102 -21
  92. data/exe/faastruby-server +0 -76
  93. data/lib/faastruby/cli/commands/credentials.rb +0 -11
  94. data/lib/faastruby/cli/commands/credentials/add.rb +0 -58
  95. data/lib/faastruby/cli/commands/credentials/list.rb +0 -58
  96. data/lib/faastruby/cli/commands/workspace.rb +0 -13
  97. data/lib/faastruby/cli/commands/workspace/deploy.rb +0 -50
  98. data/templates/crystal/example-blank/README.md +0 -22
  99. data/templates/crystal/example-blank/spec/handler_spec.cr +0 -8
  100. data/templates/crystal/example-blank/spec/spec_helper.cr +0 -4
  101. data/templates/crystal/example-blank/src/handler.cr +0 -25
  102. data/templates/ruby/example-blank/Gemfile +0 -7
  103. data/templates/ruby/example-blank/README.md +0 -22
  104. data/templates/ruby/example-blank/spec/handler_spec.rb +0 -16
  105. data/templates/ruby/example-blank/spec/spec_helper.rb +0 -3
@@ -1,15 +1,17 @@
1
1
  module FaaStRuby
2
2
  module Command
3
3
  module Workspace
4
- class Destroy < WorkspaceBaseCommand
4
+ # require 'faastruby/cli/commands/workspace/base_command'
5
+ require 'faastruby/cli/new_credentials'
6
+ class Destroy < BaseCommand
5
7
  def initialize(args)
6
8
  @args = args
9
+ help
7
10
  @missing_args = []
8
11
  FaaStRuby::CLI.error(@missing_args, color: nil) if missing_args.any?
9
12
  @workspace_name = @args.shift
10
13
  parse_options
11
- FaaStRuby::Credentials.load_for(@workspace_name)
12
- @options['credentials_file'] ||= FaaStRuby.credentials_file
14
+ load_credentials
13
15
  end
14
16
 
15
17
  def run
@@ -18,9 +20,11 @@ module FaaStRuby
18
20
  workspace = FaaStRuby::Workspace.new(name: @workspace_name)
19
21
  spinner = spin("Destroying...")
20
22
  workspace.destroy
21
- FaaStRuby::CLI.error(workspace.errors) if workspace.errors.any?
23
+ if workspace.errors.any?
24
+ spinner.stop(" Failed :(")
25
+ FaaStRuby::CLI.error(workspace.errors)
26
+ end
22
27
  spinner.stop("Done!")
23
- FaaStRuby::Credentials.remove(@workspace_name, @options['credentials_file'])
24
28
  puts "Workspace '#{@workspace_name}' was deleted from the server"
25
29
  end
26
30
 
@@ -43,11 +47,14 @@ module FaaStRuby
43
47
  end
44
48
 
45
49
  def self.help
46
- "destroy-workspace".light_cyan + " WORKSPACE_NAME [-y, --yes]"
50
+ "destroy-workspace WORKSPACE_NAME [ARGS]"
47
51
  end
48
52
 
49
53
  def usage
50
- "Usage: faastruby #{self.class.help}"
54
+ puts "\nUsage: faastruby #{self.class.help}"
55
+ puts %(
56
+ -y,--yes # Don't prompt for confirmation
57
+ )
51
58
  end
52
59
 
53
60
  def parse_options
@@ -1,36 +1,45 @@
1
+ require 'tty-table'
1
2
  module FaaStRuby
2
3
  module Command
3
4
  module Workspace
4
- class List < WorkspaceBaseCommand
5
+ # require 'faastruby/cli/commands/workspace/base_command'
6
+ require 'faastruby/cli/new_credentials'
7
+ class List < BaseCommand
5
8
  def initialize(args)
6
9
  @args = args
10
+ help
7
11
  @missing_args = []
8
12
  FaaStRuby::CLI.error(@missing_args, color: nil) if missing_args.any?
9
13
  @workspace_name = @args.shift
10
- FaaStRuby::Credentials.load_for(@workspace_name)
14
+ load_credentials
11
15
  end
12
16
 
13
17
  def run
14
18
  workspace = FaaStRuby::Workspace.new(name: @workspace_name).fetch
15
19
  FaaStRuby::CLI.error(workspace.errors) if workspace.errors.any?
20
+ if workspace.runners_max
21
+ puts "Allocated Runners: #{workspace.runners_max} (disabled)" if workspace&.runners_max == 0
22
+ puts "Allocated Runners: #{workspace.runners_max}" if workspace&.runners_max > 0
23
+ end
16
24
  print_functions_table(workspace.functions)
17
25
  end
18
26
 
19
27
  def print_functions_table(functions)
20
28
  no_functions unless functions.any?
21
- rows = functions.map do |function_name|
22
- [function_name, "#{FaaStRuby.api_host}/#{@workspace_name}/#{function_name}"]
29
+ rows = functions.map do |hash|
30
+ [hash['name'], hash['endpoint']]
23
31
  end
24
32
  table = TTY::Table.new(['FUNCTION','ENDPOINT'], rows)
25
33
  puts table.render(:basic)
26
34
  end
27
35
 
28
36
  def self.help
29
- "list-workspace".light_cyan + " WORKSPACE_NAME"
37
+ "list-workspace WORKSPACE_NAME"
30
38
  end
31
39
 
32
40
  def usage
33
- "Usage: faastruby #{self.class.help}"
41
+ puts "\n# List the contents of a cloud workspace."
42
+ puts "\nUsage: faastruby #{self.class.help}\n\n"
34
43
  end
35
44
 
36
45
  private
@@ -0,0 +1,93 @@
1
+ require 'tty-table'
2
+ module FaaStRuby
3
+ module Command
4
+ module Workspace
5
+ # require 'faastruby/cli/commands/workspace/base_command'
6
+ require 'faastruby/cli/new_credentials'
7
+ require 'oj'
8
+ require 'fileutils'
9
+ class Migrate < BaseCommand
10
+ def initialize(args)
11
+ @args = args
12
+ @failed = []
13
+ @migrated = []
14
+ help
15
+ load_credentials
16
+ end
17
+
18
+ def run
19
+ file1 = File.expand_path('~/.faastruby')
20
+ file2 = File.expand_path('~/.faastruby.tor1')
21
+ if !File.file?(file1) && !File.file?(file2)
22
+ puts "Nothing to migrate."
23
+ exit 0
24
+ end
25
+ old_credential_files = [file1, file2]
26
+
27
+ puts "@@@ WARNING @@@ WARNING @@@ WARNING @@@ WARNING @@@ ".red
28
+ puts "This is going to migrate all your legacy credentials into your new account. This process is REQUIRED, but irreversible."
29
+ email = NewCredentials::CredentialsFile.new.get['email']
30
+ puts "You are currently logged in as '#{email}'."
31
+ print "Continue? [y/N] "
32
+ response = STDIN.gets.chomp
33
+ FaaStRuby::CLI.error("Exiting", color: nil) unless response == 'y'
34
+ old_credential_files.each do |file|
35
+ next unless File.file?(file)
36
+ FileUtils.cp(file, "#{file}.backup_before_migration") unless File.file?("#{file}.backup_before_migration")
37
+ workspaces = Oj.load(File.read(file))
38
+ workspaces.each do |workspace_name, credentials|
39
+ migrate(workspace_name, credentials)
40
+ end
41
+ remove_migrated(file)
42
+ backup_file(file)
43
+ end
44
+ notify_failed
45
+ end
46
+
47
+ def remove_migrated(file)
48
+ credentials = Oj.load(File.read(file))
49
+ @migrated.each do |workspace_name|
50
+ credentials.delete(workspace_name)
51
+ end
52
+ File.write(file, JSON.pretty_generate(credentials))
53
+ end
54
+
55
+ def backup_file(file)
56
+ FileUtils.mv(file, "#{file}.bkp")
57
+ end
58
+
59
+ def notify_failed
60
+ return unless @failed.any?
61
+ puts "\nThe following workspaces failed to be migrated: #{@failed.join(', ').red}"
62
+ puts "Please come over to our Slack and we will assist you with this migration."
63
+ puts "Click the following link to join our Slack: https://faastruby.io/slack\n\n"
64
+ end
65
+
66
+ def migrate(workspace_name, credentials)
67
+ spinner = spin("Migrating workspace '#{workspace_name}'...")
68
+ api = API.new
69
+ response = api.migrate_to_account(workspace_name: workspace_name, api_key: credentials['api_key'], api_secret: credentials['api_secret'])
70
+ if response.code > 299
71
+ @failed << workspace_name
72
+ spinner.stop(" Failed :(".red)
73
+ return false
74
+ end
75
+ @migrated << workspace_name
76
+ spinner.stop(" Done!".green)
77
+ return true
78
+ end
79
+
80
+ def self.help
81
+ "migrate-workspaces"
82
+ end
83
+
84
+ def usage
85
+ puts "\n# Migrate legacy workspace credentials to your new FaaStRuby account."
86
+ puts "# You must have an account and be logged in to perform the migration."
87
+ puts "\nUsage: faastruby #{self.class.help}\n\n"
88
+ end
89
+
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,81 @@
1
+ module FaaStRuby
2
+ module Command
3
+ module Workspace
4
+ # require 'faastruby/cli/commands/workspace/base_command'
5
+ require 'faastruby/cli/new_credentials'
6
+ class RM < BaseCommand
7
+ def initialize(args)
8
+ @args = args
9
+ help
10
+ @workspace_name, @relative_path = @args.shift.split(':')
11
+ validate_command
12
+ # FaaStRuby::CLI.error(@missing_args, color: nil) if missing_args.any?
13
+ load_credentials
14
+ end
15
+
16
+ def run
17
+ # destination_url = "#{FaaStRuby.workspace_host_for(@workspace_name)}/#{@relative_path}"
18
+ spinner = say("[#{@relative_path}] Removing file from cloud workspace '#{@workspace_name}'...")
19
+ workspace = FaaStRuby::Workspace.new(name: @workspace_name)
20
+ workspace.delete_file(relative_path: @relative_path)
21
+ FaaStRuby::CLI.error(workspace.errors) if workspace.errors.any?
22
+ spinner.stop("Done!")
23
+ puts "* [#{@relative_path}] File removed from cloud workspace '#{@workspace_name}'.".green
24
+ end
25
+
26
+
27
+ def self.help
28
+ "rm WORKSPACE_NAME:/DESTINATION/PATH"
29
+ end
30
+
31
+ def usage
32
+ puts "\n# Remove static file from cloud workspace path '/DESTINATION/PATH'."
33
+ puts "\nUsage: faastruby #{self.class.help}\n\n"
34
+ end
35
+
36
+ private
37
+
38
+ def validate_command
39
+ validate_workspace_name
40
+ validate_relative_path
41
+ end
42
+
43
+ def validate_relative_path
44
+ @relative_path.sub!(/^\//, '')
45
+ FaaStRuby::CLI.error(["Invalid path: #{@relative_path}".red, "The path must have at least one character and can only contain letters, numbers, -, _, . and /."], color: nil) unless @relative_path&.match(/#{FUNCTION_NAME_REGEX}/)
46
+ true
47
+ end
48
+
49
+ def validate_workspace_name
50
+ FaaStRuby::CLI.error(["Invalid workspace name: #{@workspace_name}".red, "The workspace name must have between 3 and 15 characters, and can only have letters, numbers and dashes."], color: nil) unless @workspace_name&.match(/#{WORKSPACE_NAME_REGEX}/)
51
+ true
52
+ end
53
+
54
+
55
+ # def missing_args
56
+ # FaaStRuby::CLI.error(["'#{@workspace_name}' is not a valid workspace name.".red, usage], color: nil) if @workspace_name =~ /^-.*/
57
+ # @missing_args << "Missing argument: WORKSPACE_NAME".red unless @workspace_name
58
+ # @missing_args << "Missing argument: -s SOURCE_FILE" unless @options['source']
59
+ # @missing_args << "Missing argument: -d DESTINATION_PATH" unless @options['destination']
60
+ # @missing_args << usage if @missing_args.any?
61
+ # @missing_args
62
+ # end
63
+
64
+ # def parse_options(require_options: {})
65
+ # @options = {}
66
+ # while @args.any?
67
+ # option = @args.shift
68
+ # case option
69
+ # when '-s', '--source'
70
+ # @options['source'] = @args.shift
71
+ # when '-d', '--destination'
72
+ # @options['destination'] = @args.shift.gsub(/(^\/|\/$|\.\.|;|'|"|&|\\)/, '')
73
+ # else
74
+ # FaaStRuby::CLI.error("Unknown argument: #{option}")
75
+ # end
76
+ # end
77
+ # end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,62 @@
1
+ module FaaStRuby
2
+ module Command
3
+ module Workspace
4
+ # require 'faastruby/cli/commands/workspace/base_command'
5
+ require 'faastruby/cli/new_credentials'
6
+ class Update < BaseCommand
7
+ def initialize(args)
8
+ @args = args
9
+ help
10
+ @missing_args = []
11
+ FaaStRuby::CLI.error(@missing_args, color: nil) if missing_args.any?
12
+ @workspace_name = @args.shift
13
+ parse_options
14
+ load_credentials
15
+ end
16
+
17
+ def run(create_directory: true, exit_on_error: true)
18
+ spinner = spin("Updating the number of runners to #{@options['runners_max']}...")
19
+ workspace = FaaStRuby::Workspace.new(name: @workspace_name)
20
+ workspace.update_runners(@options['runners_max'])
21
+ FaaStRuby::CLI.error(workspace.errors) if workspace.errors.any?
22
+ spinner.stop("Done!")
23
+ end
24
+
25
+ def self.help
26
+ "update-workspace WORKSPACE_NAME ARGS"
27
+ end
28
+
29
+ def usage
30
+ puts "\nUsage: faastruby #{self.class.help}"
31
+ puts %(
32
+ --runners N # Assign N runners to the workspace.
33
+ )
34
+ end
35
+
36
+ private
37
+
38
+ def missing_args
39
+ if @args.empty?
40
+ @missing_args << "Missing argument: WORKSPACE_NAME".red
41
+ @missing_args << usage
42
+ end
43
+ FaaStRuby::CLI.error(["'#{@args.first}' is not a valid workspace name.".red, usage], color: nil) if @args.first =~ /^-.*/
44
+ @missing_args
45
+ end
46
+
47
+ def parse_options
48
+ @options = {}
49
+ while @args.any?
50
+ option = @args.shift
51
+ case option
52
+ when '--runners'
53
+ @options['runners_max'] = @args.shift
54
+ else
55
+ FaaStRuby::CLI.error("Unknown argument: #{option}")
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,62 +1,63 @@
1
- require 'json'
2
- module FaaStRuby
3
- class Credentials # TODO: change it to YAML?
4
- def self.load_credentials_file(credentials_file = FaaStRuby.credentials_file)
5
- return {} unless File.file?(credentials_file)
6
- creds = Oj.load(File.read(credentials_file))
7
- if creds.is_a?(Hash)
8
- creds.delete_if{|workspace, credentials| credentials.nil?}
9
- return creds
10
- end
11
- return {}
12
- end
1
+ # require 'json'
2
+ # require 'colorize'
3
+ # module FaaStRuby
4
+ # class Credentials # TODO: change it to YAML?
5
+ # def self.load_credentials_file(credentials_file = FaaStRuby.credentials_file)
6
+ # return {} unless File.file?(credentials_file)
7
+ # creds = Oj.load(File.read(credentials_file))
8
+ # if creds.is_a?(Hash)
9
+ # creds.delete_if{|workspace, credentials| credentials.nil?}
10
+ # return creds
11
+ # end
12
+ # return {}
13
+ # end
13
14
 
14
- def self.add(workspace_name, new_credentials, credentials_file)
15
- FaaStRuby::CLI.error("Error trying to save null credentials. You probably found a bug in the gem. Please report it at https://github.com/FaaStRuby/faastruby-cli/issues/new") unless new_credentials
16
- credentials = load_credentials_file(credentials_file)
17
- credentials.merge!({workspace_name => new_credentials})
18
- save_file(credentials, credentials_file)
19
- end
15
+ # def self.add(workspace_name, new_credentials, credentials_file)
16
+ # FaaStRuby::CLI.error("Error trying to save null credentials. You probably found a bug in the gem. Please report it at https://github.com/FaaStRuby/faastruby-cli/issues/new") unless new_credentials
17
+ # credentials = load_credentials_file(credentials_file)
18
+ # credentials.merge!({workspace_name => new_credentials})
19
+ # save_file(credentials, credentials_file)
20
+ # end
20
21
 
21
- def self.remove(workspace_name, credentials_file)
22
- credentials = load_credentials_file
23
- credentials.delete_if{|k,v| k == workspace_name}
24
- save_file(credentials, credentials_file)
25
- end
22
+ # def self.remove(workspace_name, credentials_file)
23
+ # credentials = load_credentials_file
24
+ # credentials.delete_if{|k,v| k == workspace_name}
25
+ # save_file(credentials, credentials_file)
26
+ # end
26
27
 
27
- def self.save_file(credentials, credentials_file)
28
- if File.file?(credentials_file)
29
- color = :yellow
30
- symbol = '~'
31
- else
32
- color = :green
33
- symbol = '+'
34
- end
35
- credentials.delete_if{|workspace, creds| creds.nil?}
36
- File.open(credentials_file, 'w') {|f| f.write JSON.pretty_generate(credentials)}
37
- puts "#{symbol} f #{credentials_file}".colorize(color)
38
- end
28
+ # def self.save_file(credentials, credentials_file)
29
+ # if File.file?(credentials_file)
30
+ # color = :yellow
31
+ # symbol = '~'
32
+ # else
33
+ # color = :green
34
+ # symbol = '+'
35
+ # end
36
+ # credentials.delete_if{|workspace, creds| creds.nil?}
37
+ # File.open(credentials_file, 'w') {|f| f.write JSON.pretty_generate(credentials)}
38
+ # puts "#{symbol} f #{credentials_file}".colorize(color)
39
+ # end
39
40
 
40
- def self.load_for(workspace_name, cred_file = FaaStRuby.credentials_file, exit_on_error: true)
41
- credentials = load_from_env(workspace_name) || load_credentials_file(cred_file)
42
- error_msg = "Could not find credentials for '#{workspace_name}' in '#{cred_file}'"
43
- if exit_on_error && !credentials[workspace_name]
44
- FaaStRuby::CLI.error(error_msg)
45
- elsif !credentials[workspace_name]
46
- puts error_msg
47
- return false
48
- end
49
- FaaStRuby.configure do |config|
50
- config.api_key = credentials[workspace_name]['api_key']
51
- config.api_secret = credentials[workspace_name]['api_secret']
52
- end
53
- return true
54
- end
41
+ # def self.load_for(workspace_name, cred_file = FaaStRuby.credentials_file, exit_on_error: true)
42
+ # credentials = load_from_env(workspace_name) || load_credentials_file(cred_file)
43
+ # error_msg = "Could not find credentials for '#{workspace_name}' in '#{cred_file}'"
44
+ # if exit_on_error && !credentials[workspace_name]
45
+ # FaaStRuby::CLI.error(error_msg)
46
+ # elsif !credentials[workspace_name]
47
+ # puts error_msg
48
+ # return false
49
+ # end
50
+ # FaaStRuby.configure do |config|
51
+ # config.api_key = credentials[workspace_name]['api_key']
52
+ # config.api_secret = credentials[workspace_name]['api_secret']
53
+ # end
54
+ # return true
55
+ # end
55
56
 
56
- def self.load_from_env(workspace_name)
57
- return nil unless ENV['FAASTRUBY_API_KEY'] && ENV['FAASTRUBY_API_SECRET']
58
- puts "#{"WARNING:".red} Using credentials from env vars FAASTRUBY_API_KEY and FAASTRUBY_API_SECRET"
59
- {workspace_name => {'api_key' => ENV['FAASTRUBY_API_KEY'], 'api_secret' => ENV['FAASTRUBY_API_SECRET']}}
60
- end
61
- end
62
- end
57
+ # def self.load_from_env(workspace_name)
58
+ # return nil unless ENV['FAASTRUBY_API_KEY'] && ENV['FAASTRUBY_API_SECRET']
59
+ # puts "#{"WARNING:".red} Using credentials from env vars FAASTRUBY_API_KEY and FAASTRUBY_API_SECRET"
60
+ # {workspace_name => {'api_key' => ENV['FAASTRUBY_API_KEY'], 'api_secret' => ENV['FAASTRUBY_API_SECRET']}}
61
+ # end
62
+ # end
63
+ # end