Sha256: 48b7b95a1e29f55a24b082d2ec297134fbd90ca91584fe73b822796c34edb8ad

Contents?: true

Size: 1.45 KB

Versions: 5

Compression:

Stored size: 1.45 KB

Contents

class Bard::CLI < Thor
  class Data < Struct.new(:bard, :from, :to)
    def call
      if to == "local"
        data_pull_db from.to_sym
        data_pull_assets from.to_sym
      end
      if from == "local"
        data_push_db to.to_sym
        data_push_assets to.to_sym
      end
    end

    private

    def data_pull_db server
      bard.instance_eval do
        puts "Dumping remote database to file..."
        run_crucial ssh_command(server, "bin/rake db:dump")

        puts "Downloading file..."
        copy :from, server, "db/data.sql.gz", verbose: true

        puts "Loading file into local database..."
        run_crucial "bin/rake db:load"
      end
    end

    def data_push_db server
      bard.instance_eval do
        puts "Dumping local database to file..."
        run_crucial "bin/rake db:dump"

        puts "Uploading file..."
        copy :to, server, "db/data.sql.gz", verbose: true

        puts "Loading file into remote database..."
        run_crucial ssh_command(server, "bin/rake db:load")
      end
    end

    def data_pull_assets server
      bard.instance_eval do
        @config.data.each do |path|
          puts "Downloading files..."
          rsync :from, server, path, verbose: true
        end
      end
    end

    def data_push_assets server
      bard.instance_eval do
        @config.data.each do |path|
          puts "Uploading files..."
          rsync :to, server, path, verbose: true
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bard-0.58.0 lib/bard/data.rb
bard-0.57.0 lib/bard/data.rb
bard-0.56.0 lib/bard/data.rb
bard-0.55.0 lib/bard/data.rb
bard-0.54.0 lib/bard/data.rb