Sha256: 97614f76cab756eb49a45f67aafc888397e905d1a415e4acd405a42cbfba8fd0

Contents?: true

Size: 1.82 KB

Versions: 6

Compression:

Stored size: 1.82 KB

Contents

module Souls
  module Sync
    class << self
      def conf
        update_conf
        update_conf(strain: "api")
      end

      def update_conf(strain: "mother")
        require("#{Souls.get_mother_path}/config/souls")
        workers = Souls.configuration.workers
        Dir.chdir(Souls.get_mother_path.to_s) do
          file_path = strain == "mother" ? "config/souls.rb" : "apps/api/config/souls.rb"
          new_file_path = "souls.rb"
          worker_switch = false
          File.open(new_file_path, "w") do |new_line|
            File.open(file_path, "r") do |f|
              f.each_line do |line|
                worker_switch = true if line.include?("config.workers")
                next if line.strip == "end"

                new_line.write(line) unless worker_switch

                next unless worker_switch

                new_line.write("  config.workers = [\n")
                workers.each_with_index do |worker, i|
                  base_url = Souls::Gcloud::Run.get_endpoint(worker_name: worker[:name])
                  endpoint = Souls.configuration.endpoint
                  if (i + 1) == workers.size
                    new_line.write(<<-TEXT)
    {
      name: "#{worker[:name]}",
      endpoint: "#{base_url.strip}#{endpoint}",
      port: #{worker[:port]}
    }
                    TEXT
                  else
                    new_line.write(<<-TEXT)
    {
      name: "#{worker[:name]}",
      endpoint: "#{base_url.strip}#{endpoint}",
      port: #{worker[:port]}
    },
                    TEXT
                  end
                end
                break
              end
            end
            new_line.write(<<~TEXT)
                ]
              end
            TEXT
          end
          FileUtils.rm(file_path)
          FileUtils.mv(new_file_path, file_path)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
souls-0.51.2 lib/souls/cli/sync/conf.rb
souls-0.51.1 lib/souls/cli/sync/conf.rb
souls-0.51.0 lib/souls/cli/sync/conf.rb
souls-0.50.0 lib/souls/cli/sync/conf.rb
souls-0.49.0 lib/souls/cli/sync/conf.rb
souls-0.48.2 lib/souls/cli/sync/conf.rb