class Object

Public Instance Methods

add_user(u) click to toggle source
# File lib/mina/extras/ubuntu.rb, line 8
def add_user(u)
  invoke :sudo
  command "adduser #{u}"
end
append_template(source, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 48
def append_template(source, destination)
  desc = File.basename(destination)

  if source =~ /erb$/
    contents = parse_template(source)
  else
    contents = File.read(source)
  end

  extra_echo("Put #{desc} file to #{destination}")

  script = <<EOF
script=$(cat <<'EOFF'
#{contents}
EOFF
)
EOF

  command %{#{script}}
  command %{echo "$script" >> #{destination}}
  command check_exists(destination)
end
apt_get(package) click to toggle source
# File lib/mina/extras/apt.rb, line 3
def apt_get(package)
  command "sudo apt-get install #{package} -y"
end
brew_install(package) click to toggle source
# File lib/mina/extras/brew.rb, line 1
def brew_install(package)
  command "sudo brew install #{package} -y"
end
check_exec_and_ownership(u, g, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 148
def check_exec_and_ownership(u, g, destination)
  %{
    file_info=(`ls -l #{destination}`)
    if [[ -s "#{destination}" ]] && [[ -x "#{destination}" ]] && [[ ${file_info[2]} == '#{u}' ]] && [[ ${file_info[3]} == '#{g}' ]]; #{check_response}
    }
end
check_exists(destination) click to toggle source
# File lib/mina/extras/methods.rb, line 137
def check_exists(destination)
  %{if [[ -s "#{destination}" ]]; #{check_response}}
end
check_file_exist?(file) click to toggle source
# File lib/mina/extras/methods.rb, line 192
def check_file_exist?(file)
  File.exist?(file)
end
check_ownership(u, g, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 141
def check_ownership(u, g, destination)
  %{
    file_info=(`ls -l #{destination}`)
    if [[ -s "#{destination}" ]] && [[ ${file_info[2]} == '#{u}' ]] && [[ ${file_info[3]} == '#{g}' ]]; #{check_response}
    }
end
check_response() click to toggle source
# File lib/mina/extras/methods.rb, line 133
def check_response
  'then echo "----->   SUCCESS"; else echo "----->   FAILED"; fi'
end
command_echo(s) click to toggle source
# File lib/mina/extras/methods.rb, line 188
def command_echo(s)
  command %{echo '#{s}'}
end
custom_conf?(conf) click to toggle source
# File lib/mina/extras/methods.rb, line 159
def custom_conf?(conf)
  Dir[File.join(Dir.pwd, "config", "deploy", "#{fetch(:server)}", "*")].map do |file|
    filename = File.basename(file)
    if filename.gsub(/.erb\Z/, "") == conf.to_s
      return true
    end
  end

  false
end
custom_conf_path(conf) click to toggle source
# File lib/mina/extras/methods.rb, line 170
def custom_conf_path(conf)
  Dir[File.join(Dir.pwd, "config", "deploy", "#{fetch(:server)}", "*")].map do |file|
    filename = File.basename(file)
    if filename.gsub(/.erb\Z/, "") == conf.to_s
      return file
    end
  end

  Dir[File.join(Dir.pwd, "config", "deploy", "shared", "*")].map do |file|
    filename = File.basename(file)
    if filename.gsub(/.erb\Z/, "") == conf.to_s
      return file
    end
  end

  false
end
extra_echo(desc) click to toggle source
# File lib/mina/extras/methods.rb, line 5
def extra_echo(desc)
  command "echo '--------> #{desc}'"
end
extra_echo!(desc) click to toggle source
# File lib/mina/extras/methods.rb, line 9
def extra_echo!(desc)
  command "echo '--------> #{desc}'"
end
gem_install(package, options=nil) click to toggle source
# File lib/mina/extras/gem.rb, line 1
def gem_install(package, options=nil)
  command "sudo gem install #{package} #{options} --no-rdoc --no-ri"
end
mv_config(source, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 1
def mv_config(source, destination)
  command %{mv #{fetch(:deploy_to)}/shared/config/#{source} #{fetch(:deploy_to)}/shared/config/#{destination}}
end
parse_template(file) click to toggle source
# File lib/mina/extras/methods.rb, line 129
def parse_template(file)
  erb(file)
end
scp_file(desc, source, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 13
def scp_file(desc, source, destination)
  on :after_hook do
    extra_echo("Put #{desc} file to #{destination}")

    command = "scp "
    command << source
    command << " #{user}@#{domain!}:#{destination}"

    extra_echo("#{command}")

    result = %x[#{command}]
    puts result unless result == ""
  end
end
upload_default_template(tpl, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 94
def upload_default_template(tpl, destination)
  desc = File.basename(destination)

  source = File.join(File.dirname(__FILE__), "templates", "#{tpl}.erb")

  contents = parse_template(source)

  extra_echo("Put #{desc} file to #{destination}")

  script = <<EOF
script=$(cat <<'EOFF'
#{contents}
EOFF
)
EOF

  command %{#{script}}
  command %{echo "$script" > #{destination}}
  command check_exists(destination)
end
upload_file(filename, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 38
def upload_file(filename, destination)
  src = custom_conf_path(filename)

  if src
    upload_template src, destination
  else
    upload_default_template filename, destination
  end
end
upload_shared_file(filename) click to toggle source
# File lib/mina/extras/methods.rb, line 28
def upload_shared_file(filename)
  src = custom_conf_path(filename)

  if src
    upload_template src, "#{fetch(:deploy_to)}/shared/#{filename}"
  else
    upload_default_template filename, "#{fetch(:deploy_to)}/shared/#{filename}"
  end
end
upload_shared_folder(folder, base) click to toggle source
# File lib/mina/extras/methods.rb, line 115
def upload_shared_folder(folder, base)
  Dir[File.join(folder, "*")].map do |path|
    if File.directory?(path)
      upload_shared_folder(path)
    else
      filename = File.basename(path)
      shared_folder = path.gsub(base, "").gsub(filename, "").gsub(/\A\//, "").gsub(/\/\Z/, "")
      des = "#{fetch(:deploy_to)}/shared/#{shared_folder}/#{filename.gsub(/\.erb$/, "")}"
      upload_template path, des
    end
  end

end
upload_template(source, destination) click to toggle source
# File lib/mina/extras/methods.rb, line 71
def upload_template(source, destination)
  desc = File.basename(destination)

  if source =~ /erb$/
    contents = parse_template(source)
  else
    contents = parse_template(source)
  end

  extra_echo("Put #{desc} file to #{destination}")

  script = <<EOF
script=$(cat <<'EOFF'
#{contents}
EOFF
)
EOF

  command %{#{script}}
  command %{echo "$script" > #{destination}}
  command check_exists(destination)
end