Sha256: 62eff30f0bb250a5a60a0d124b660b6a59e0ce83c5e7f00716ab7565eb32c68c
Contents?: true
Size: 1.05 KB
Versions: 4
Compression:
Stored size: 1.05 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 -p22022 "cd #{project_name} && #{command}") end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
bard-0.11.1 | lib/bard/ssh_delegation.rb |
bard-0.11.0 | lib/bard/ssh_delegation.rb |
bard-0.10.0 | lib/bard/ssh_delegation.rb |
bard-0.9.14 | lib/bard/ssh_delegation.rb |