Git branch & Subversion detection en el prompt de Bash

Simple, agregar en el .bashrc lo siguiente :

function parse_git_branch {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* (.*)/(1)/'
}

function detect_svn {
  test -d .svn && echo "(svn)"
}

function proml {
  local         RED="[33[0;31m]"
  local   LIGHT_RED="[33[1;31m]"
  local      YELLOW="[33[0;33m]"
  local LIGHT_GREEN="[33[1;32m]"
  local       WHITE="[33[1;37m]"
  local  LIGHT_GRAY="[33[0;37m]"
  local LIGHT_PURPLE="[33[1;34m]"
  case $TERM in
    xterm*)
    TITLEBAR='[33]0;u@h:w07]'
    ;;
    *)
    TITLEBAR=""
    ;;
  esac

PS1="${TITLEBAR}
$LIGHT_PURPLEw$YELLOW$(parse_git_branch)$(detect_svn)
$LIGHT_GRAY$ "
PS2='> '
PS4='+ '
}
proml

Y se ve algo como (sin colores, sorry 🙂 :

~/src/some_git_project(master)$ 
~/src/some_svn_project(svn)$

MySQL a CSV remotamente desde el shell

Algo que siempre me molestaba de cuando una campaña deja de correr era la molestia de los día siguientes : “me exportas a,c,b de tal tabla”, “me das mejor b,a,c” y así sigue la molestia.

Más que nada porque tenía que loggearme al DB server, hacer un dump o correr algún script de php para armarlo.

Bueno, hoy buscando otra cosa caí sin querer en este tip que usa el comando myql y sed desde el shell. Así que ahora puedo tirar la query por la VPN (bueno, cuando ande bien voy a poder :D) directo al DB server y mandar por email el CSV :).

mysql -u user -h host -p --execute="SELECT campo1, campo2, campoN FROM  table_name" database_name | sed 's/t/","/g;s/^/"/;s/$/"/;s/n//g'

Esto lo tira al stdout, agregando un “> output.csv” estamos hechos.