Compartiendo algunos scripts
Seguramente la pereza es la madre de muchos de esos pequeños scripts que uno va haciendo para tratar de evitar todas las tareas repetitivas diarias. Acá dejo algunos de mi autoría y algunos que saque alguna vez de internet pero que lametablemente no tomé nota de donde o quien eran :(....
Muchas veces conectado remotamente a un servidor necesito acceder a la base mysql del proyecto RoR activo y es un dolor de culo tener que mirar el database.yml para ver las credenciales y luego escribir la línea a mano para conectarse, para evitar eso, escribí esto:
#! /usr/bin/ruby
require 'yaml'
puts ARGV[0]
case ARGV[0]
when 'd' then env = 'development'
when 'p' then env = 'production'
when 't' then env = 'test'
else
env = 'development'
end
config = YAML::load_file('config/database.yml')[env]
puts "mysql -u#{config['username']} -p#{config['password']} #{config['database']}"
system("mysql -u#{config['username']} -p#{config['password']} #{config['database']}")
de esta manera estando parado sobre el directorio raiz del proyecto se puede hacer
rmyy se conecta por defecto a desarrollo o
rmy py nos conectamos a producción…
Otro… ahora que la última versión de RoR incorporó la tarea de poder ver las rutas con
rake routeesta bueno, pero es otro dolor de culo tener que buscar una ruta y escribir
rake route | grep usuariospara filtrar la vista… para eso ésta función en bash
rro ()
{
rake routes | grep --color=auto $1
}
ahora solo hay que hacer
rro usuarios
y como plus se tiene el texto buscado resaltado en color ;).. una joyita….
Otra función bash que uso mucho basado en la misma idea es la de búsqueda en el history del bash
function hf()
{
history | grep --color=auto $1
}
y esto para que ??.. aveces hay comandos largos con parámetros que repetirlos es tedioso, para evitar eso primero buscamos en el history
hf mysqlpara obtener todos los comandos en el history que tenga el texto mysql y a la izquierda hay un número con la posición en el buffer, con ese número luego hacemos
!128y se ejecuta esa entrada en el history ;)
Para terminar les dejo mi pequeño archivo de bash que cargo cada vez que abro una consola
alias l='ls -lah'
alias h='history'
alias c='clear'
alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --color=auto'
set -o vi
function hf()
{
history | grep $1
}
function sf()
{
svn st | grep \? | sed '/images\/[0-9]\+$/d' | sed '/\.swp/d'
}
function rro()
{
rake routes | grep $1
}
como cargo este archivo ??... al final de .bashrc tengo:
. ~/bin/bash_alias
bash_alias es el nombre de mi archivo
Espero que a alguien le interese y le sirva!.
