Sha256: 59e8e1cf98576c3fc0352b40521fb49fef7182baaa7b71eeebfb7d78d13482af

Contents?: true

Size: 1.55 KB

Versions: 5

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

module MobileWorkflow
  module Cli
    class DokkuBackend
      def initialize(dokku_host:, app_name:)
        @dokku_host = dokku_host
        @dokku_app_name = app_name.gsub('_', '-')
      end

      def create
        remote_command "dokku apps:create #{@dokku_app_name}"
        remote_command "dokku postgres:create #{@dokku_app_name}"
        remote_command "dokku postgres:link #{@dokku_app_name} #{@dokku_app_name}"
        remote_command "dokku domains:enable #{@dokku_app_name}"
        remote_command "dokku letsencrypt #{@dokku_app_name}"

        local_command "git remote add dokku dokku@#{@dokku_host}:#{@dokku_app_name}"
      end

      def configure_activestorage; end

      def deploy
        local_command 'git push dokku master'
      end

      def sync_dotenv
        env = File.read('.env').split.join(' ')
        puts "Setting env: #{env}"
        local_command "dokku config:set #{env}"
      end

      def destroy
        remote_command "dokku apps:destroy #{@dokku_app_name}"
      end

      def dokku_app_host
        remote_command "dokku url #{@dokku_app_name}"
      end

      def notifications_endpoint
        "https://#{dokku_app_host}/sns_notifications"
      end

      private

      def remote_command(command)
        command = "ssh -t ubuntu@#{@dokku_host} '#{command}'"
        local_command(command)
      end

      def local_command(command)
        puts "Running: #{command}"
        output = `#{command}`
        puts "Output: #{output}" unless output.blank?
        output
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mobile_workflow-0.12.2 lib/mobile_workflow/cli/dokku_backend.rb
mobile_workflow-0.12.1 lib/mobile_workflow/cli/dokku_backend.rb
mobile_workflow-0.12.0 lib/mobile_workflow/cli/dokku_backend.rb
mobile_workflow-0.11.1 lib/mobile_workflow/cli/dokku_backend.rb
mobile_workflow-0.11.0 lib/mobile_workflow/cli/dokku_backend.rb