Sha256: 2d6f856d2c7133ad0e6699da40fe4fa510fdfb8f3af74267bdeb9f500c2874ed

Contents?: true

Size: 1.54 KB

Versions: 15

Compression:

Stored size: 1.54 KB

Contents

require "thor"
require "dddr"
require "terminal-table"
require "yaml"
require "toml-rb"
require "fileutils"
require "ostruct"
require "sucker_punch"
require "resend"

require_relative "harbr/version"
require_relative "harbr/container"
require_relative "harbr/job"

# Harbr module for managing containers, jobs, ports, and 2s
module Harbr
  DEFAULT_DIRECTORY = "/var/harbr/containers"
  DEFAULT_DIRECTORY_DATA_DIR = "#{DEFAULT_DIRECTORY}/.data"
  class Error < StandardError; end

  def self.send_notification(subject, body)
    resend_config = YAML.load_file("/etc/harbr/resend.yml")

    Resend.api_key = resend_config["key"]

    params = {
      from: resend_config["from"],
      to: resend_config["to"],
      subject: subject,
      html: body
    }

    puts "Sending notification: #{params}"

    Resend::Emails.send(params)
  rescue => e
    puts "Error: #{e.class}"
    puts "backtrace: #{e.backtrace.join('\n')}"
    puts "Error sending notification: #{e.message}"
  end

  def self.notifiable(name, version, env)
    yield if block_given?
    send_notification("Harbr: #{name} deployed to #{env} successfully", "<p>harbr: #{version} of #{name} deployed to #{env} successfully</p>")
  rescue => e
    html_content = <<~HTML
      <p>Error: #{e.message}</p>
                <p>#{e.backtrace.join("<br>")}</p>
                <p>harbr: #{version} of #{env} #{name} failed to deploy</p>
    HTML

    send_notification("Harbr: #{name} failed to deploy", html_content)
  end
end

Dddr.configure do |config|
  config.data_dir = Harbr::DEFAULT_DIRECTORY_DATA_DIR
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
harbr-0.1.99 lib/harbr.rb
harbr-0.1.98 lib/harbr.rb
harbr-0.1.97 lib/harbr.rb
harbr-0.1.96 lib/harbr.rb
harbr-0.1.95 lib/harbr.rb
harbr-0.1.94 lib/harbr.rb
harbr-0.1.93 lib/harbr.rb
harbr-0.1.91 lib/harbr.rb
harbr-0.1.90 lib/harbr.rb
harbr-0.1.89 lib/harbr.rb
harbr-0.1.88 lib/harbr.rb
harbr-0.1.87 lib/harbr.rb
harbr-0.1.86 lib/harbr.rb
harbr-0.1.85 lib/harbr.rb
harbr-0.1.84 lib/harbr.rb