Sha256: 0e642fb6a66c140aa10b91590ddb0dc9f0bb9f975fdff20ff8f7486163accf7e

Contents?: true

Size: 1.04 KB

Versions: 24

Compression:

Stored size: 1.04 KB

Contents

class Bard < Thor
  desc "install-authorized-keys", "!!! INTERNAL USE ONLY !!! run as sudo"
  def install_authorized_keys(source_user, dest_user)
    source = "/home/#{source_user}/.ssh/authorized_keys"
    dest = "/home/#{dest_user}/.ssh/authorized_keys"

    file = File.read(source)
    file.gsub! /gitosis-serve/, "bard delegate"

    File.open(dest, "w") { |f| f.write(file) }
  end

  desc "delegate", "!!! INTERNAL USER ONLY !!!"
  def delegate(key)
    command = ENV['SSH_ORIGINAL_COMMAND']

    case command
    when /^scp -f (\w+)\.sql\.gz$/
      project = $1
      `#{command_for("staging", "cd #{project} && rake db:dump RAILS_ENV=staging && gzip -9f db/data.sql")}`
      command = "scp -f ~/#{project}/db/data.sql.gz"
    end

    exec command_for("staging", command)
  end

  private
    def command_for(user, command)
      %(sudo -H -u #{user} bash -c "cd ~ && #{command}")
    end

    def run_crucial_via_bard(command)
      return if ENV['TESTING']
      run_crucial %(ssh bard@bard.botandrose.com "cd #{project_name} && #{command}")
    end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
bard-0.9.10 lib/bard/ssh_delegation.rb
bard-0.9.9 lib/bard/ssh_delegation.rb
bard-0.9.8 lib/bard/ssh_delegation.rb
bard-0.9.7 lib/bard/ssh_delegation.rb
bard-0.9.6 lib/bard/ssh_delegation.rb
bard-0.9.5 lib/bard/ssh_delegation.rb
bard-0.9.4 lib/bard/ssh_delegation.rb
bard-0.9.3 lib/bard/ssh_delegation.rb
bard-0.9.2 lib/bard/ssh_delegation.rb
bard-0.9.1 lib/bard/ssh_delegation.rb
bard-0.9.0 lib/bard/ssh_delegation.rb
bard-0.8.31 lib/bard/ssh_delegation.rb
bard-0.8.30 lib/bard/ssh_delegation.rb
bard-0.8.29 lib/bard/ssh_delegation.rb
bard-0.8.28 lib/bard/ssh_delegation.rb
bard-0.8.27 lib/bard/ssh_delegation.rb
bard-0.8.26 lib/bard/ssh_delegation.rb
bard-0.8.25 lib/bard/ssh_delegation.rb
bard-0.8.24 lib/bard/ssh_delegation.rb
bard-0.8.23 lib/bard/ssh_delegation.rb