Rake tasks para log/ tmp/ y cache/

by Gastón Ramos

Acá les dejo algunas tareas de rake que suelo agregar cuando comienzo un proyecto nuevo, son para
sacar las cosas que no tienen que estar bajo control de versión y para crear los archivos de log (cuando lo necesitemos):

lib/tasks/log.rake


namespace :log do

  desc "Crear los directorios y archivos de log"
  task :create do

    system 'mkdir -p log'
    system '> log/development.log'
    system '> log/production.log'
    system '> log/server.log'
    system '> log/test.log'

  end

  desc "Cambia el grupo del directorio los archivos de log a www-data y pone
  permisos de lectura/escritura para el grupo"
  task :set_permissions_for_apache do

    system 'chgrp -R www-data log'
    system 'chmod -R g+rw log/'

  end

  desc "Saca los archivos de log del svn"
  task :remove_svn do

    system 'svn remove log/*'
    system "svn commit -m 'Estas cosas no van en el svn'"
    system "svn propset svn:ignore '*.log' 'log/'"
    system 'svn update log/'
    system "svn commit -m 'Ingnorar los archivos en log/'"
  end

end

lib/tasks/tmp.rake


namespace :tmp do

  desc "Cambia el grupo del directorio los archivos de log a www-data y pone
        permisos de lectura/escritura para el grupo"
  task :set_permissions_for_apache do

    system 'chgrp -R www-data tmp'
    system 'chmod -R g+rw tmp'

  end

  desc "Saca los archivos de tmp del svn"
  task :remove_svn do

    system 'svn remove tmp/cache/*'
    system 'svn remove tmp/sessions/*'
    system 'svn remove tmp/sockets/*'

    system "svn commit -m 'Los archivos temporales no van en el svn'"

    system 'svn propset svn:ignore "*" tmp/'
    system 'svn propset svn:ignore "*" tmp/cache/'
    system 'svn propset svn:ignore "*" tmp/sessions/'
    system 'svn propset svn:ignore "*" tmp/sockets/'

    system 'svn update tmp/'
    system "svn commit -m 'Ingnorar los archivos en tmp/'"
  end
end

lib/tasks/db.rake


namespace :db do

  desc "Saca el archivo database.yml del svn"
  task :rm_conf_file_svn do
    system 'svn move  config/database.yml config/database-ejemplo.yml'
    system "svn commit -m 'El archivo database.yml no va en el svn'"
    system "svn propset svn:ignore 'database.yml' 'config/'"
    system 'svn update config/'
    system "svn commit -m 'Ingnorar el archivo config/database.yml'"
    system 'cp  config/database-ejemplo.yml  config/database.yml'
  end

  desc "Genera el archivo database.yml"
  task :gen_conf_file do
    system 'cp  config/database-ejemplo.yml config/database.yml'
  end
end