Sha256: 10bfc8cdfe7f19e67af478b1e770ce5affb966f388ff69a5793c0b6ab87176a2

Contents?: true

Size: 1.85 KB

Versions: 1

Compression:

Stored size: 1.85 KB

Contents

require 'mina/install'

set :port, 22

task :environment do
  print_error ':environment is DEPRECATED! Please use local_environment and remote_environment'
end

task :local_environment do
end

task :remote_environment do
end

task :default do
end

task :run_commands do
  if commands.run_default?
    invoke :environment
    commands.run(:remote)
  end
end

task :reset! do
  reset!
end

task :debug_configuration_variables do
  if fetch(:debug_configuration_variables)
    puts
    puts '------- Printing current config variables -------'
    configuration.variables.each do |key, value|
      puts "#{key.inspect} => #{value.inspect}"
    end
  end
end

desc 'Adds repo host to the known hosts'
task :ssh_keyscan_repo do
  ensure!(:repository)
  repo_host = fetch(:repository).split(%r{@|://}).last.split(%r{:|\/}).first
  repo_port = /:([0-9]+)/.match(fetch(:repository)) && /:([0-9]+)/.match(fetch(:repository))[1] || '22'

  next if repo_host == ""

  command %{
    if ! ssh-keygen -H -F #{repo_host} &>/dev/null; then
      ssh-keyscan -t rsa -p #{repo_port} -H #{repo_host} >> ~/.ssh/known_hosts
    fi
  }
end

desc 'Adds domain to the known hosts'
task :ssh_keyscan_domain do
  ensure!(:domain)
  ensure!(:port)
  run :local do
    command %{
      if ! ssh-keygen -H -F #{fetch(:domain)} &>/dev/null; then
        ssh-keyscan -t rsa -p #{fetch(:port)} -H #{fetch(:domain)} >> ~/.ssh/known_hosts
      fi
    }
  end
end

desc 'Runs a command in the server.'
task :run, [:command] do |_, args|
  ensure!(:deploy_to)
  command = args[:command]

  unless command
    puts "You need to provide a command. Try: mina 'run[ls -la]'"
    exit 1
  end

  in_path fetch(:deploy_to) do
    command command
  end
end

desc 'Open an ssh session to the server and cd to deploy_to folder'
task :ssh do
  exec %{#{Mina::Backend::Remote.new(nil).ssh} 'cd #{fetch(:deploy_to)} && exec $SHELL'}
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mina-1.1.0 tasks/mina/default.rb