Sha256: 51ebbddd8c3a8940fcdcc7b36cd74bd9a58c9fedb583318914d470581facaf57

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

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}"
    
    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}/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?
    return output
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mobile_workflow_cli-0.1.4 lib/mobile_workflow_cli/dokku_backend.rb