Sha256: aa03658dfa4fc0f8ce7ba3738198a285921eba646089209385a952c7892b8d24
Contents?: true
Size: 1.04 KB
Versions: 3
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 www@staging.botandrose.com "cd #{project_name} && #{command}") end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bard-0.9.13 | lib/bard/ssh_delegation.rb |
bard-0.9.12 | lib/bard/ssh_delegation.rb |
bard-0.9.11 | lib/bard/ssh_delegation.rb |