Rake tasks para log/ tmp/ y cache/

Wednesday, 18 July , 2007

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

Leave a Reply