require 'bundler/setup'
require 'yaml'
require 'digest'

DOCKER_COMPOSE='docker-compose.yml'

desc 'entorno vivo'
namespace :live do
  task :up do
    compose('up', '--build', '-d', compose: DOCKER_COMPOSE)
  end

   desc 'monitorear salida'
  task :tail do
    compose('logs', '-f', 'django', compose: DOCKER_COMPOSE)
  end

  desc 'monitorear salida'
  task :tail_end do
    compose('logs', '-f', '-n 50', 'django', compose: DOCKER_COMPOSE)
  end

  desc 'detener entorno'
  task :down do
    compose('down', compose: DOCKER_COMPOSE)
  end

  desc 'detener entorno'
  task :stop do
    compose('stop', compose: DOCKER_COMPOSE)
  end

  desc 'eliminar entorno'
  task :del do
    compose('down', '-v', '--rmi', 'all', compose: DOCKER_COMPOSE)
  end

  desc 'reiniciar entorno'
  task :restart do
    compose('restart', compose: DOCKER_COMPOSE)
  end

  desc 'detener entorno'
  task :stop do
    compose('stop', compose: DOCKER_COMPOSE)
  end

  desc 'terminal'
  task :sh do
    compose('exec', 'django', 'bash')
  end

end

def compose(*arg, compose: DOCKER_COMPOSE)
  sh "docker compose -f #{compose} #{arg.join(' ')}"
end