Categorías
hoy aprendí ...

… a implementar los metadatos en GIT

Hace tiempo que quiero guardar la fecha de los archivos cuando se hacen los commits en GIT y que al hacer el checkout vuelva a restaurarlos.

Había encontrado un par de soluciones, entre ellas:

Pregunta en stackoverflow.com acerca de la misma inquietud, en donde se exponen algunas propuestas, hacer un script ad Hoc, Metastore (que ya está como caido) y git-cache-meta que parece funcionar
git-cache-meta

Que tiene varias contribuciones, entre ellas una de danny0838 con una adaptación para msysgit

Y para utilizarlo de manera automática encontré en la misma pregunta una forma de utilizarlo, el mismo danny0838 hizo una versión más ligera pero que utilizar Perl y depende de commandos *nix.

https://github.com/danny0838/git-store-meta

Lo que logré fue adaptar los hooks en pre-commit y post-checkout para que lanze el comando.

Falta mejorarlo para que cuando se clona el proyecto por primera vez, instale los hooks de manera automática y hace el –apply de los metadatos.

copiar_hooks_client_side.sh

#!/bin/sh

# Copia los hooks de un repositorio de hooks a la carpeta del proyecto GIT desde donde se llama.

echo "Copiando HOOKS de GIT-CACHE-META-MSYSGIT al proyecto $PWD"
cp /ruta-al-repo-de-hooks/git-cache-meta-msysgit.sh $PWD/.git/hooks/git-cache-meta-msysgit.sh
cp /ruta-al-repo-de-hooks/post-checkout $PWD/.git/hooks/post-checkout
cp /ruta-al-repo-de-hooks/pre-commit $PWD/.git/hooks/pre-commit

pre-commit

#!/bin/sh
# when running the hook, cwd is the top level of working tree

# store
echo "Almacenar metadatos de archivos en el repo ..."
sh $(dirname "$0")/git-cache-meta-msysgit.sh --store || exit 1

# remember to add the updated cache file
git add .git_cache_meta

post-checkout

#!/bin/sh
# when running the hook, cwd is the top level of working tree

sha_old=$1
sha_new=$2
change_br=$3

# apply metadata only when the HEAD is changed
if [ ${sha_new} != ${sha_old} ]; then
 echo "Recuperar metadatos de archivos ..."
 sh $(dirname "$0")/git-cache-meta-msysgit.sh --apply
fi

Nota: para saber sobre los directorios en script bash (

$PWD

http://unix.stackexchange.com/questions/188182/how-to-get-current-working-directory

 

Categorías
hoy aprendí ...

… a hacer un script bash para armar proyectos

aunque de manera muy rudimentaria, automatiza el proceso de:

  • crear la carpeta
  • inicializar el repo git
  • crear el repo remoto y enlazarlo
  • copiar una estructura de carpetas y archivos básicos
  • hacer el primer commit y empujarlo al remoto

El script necesita como parámetro (por ahora) la carpeta donde alojar el proyecto.

Gracias a http://www.ibm.com/developerworks/library/l-bash-parameters/index.html

Categorías
hoy aprendí ...

… a separar los adjuntos en Thunderbir de manera masiva

Buscando a la forma de separar (detach) los archivos adjuntos de un gran grupo de emails usando Thunderbird llegué con la extensión AttachmentExtractor. Corre como la seda.

Categorías
hoy aprendí ...

… a obtener las imágenes de videos de youtube

En realidad lo había aprendido el año pasado cuando hice el feed del canal de youtube, pero lo olvidé y volví a aprender hoy.

    • http://img.youtube.com/vi/THE-VIDEO-ID/0.jpg or
      http://img.youtube.com/vi/THE-VIDEO-ID/default.jpg – full size thumb
    • http://img.youtube.com/vi/THE-VIDEO-ID/mqdefault.jpg – medium default
    • http://img.youtube.com/vi/THE-VIDEO-ID/maxresdefault.jpg – high res
    • http://img.youtube.com/vi/THE-VIDEO-ID/1.jpg – small thumb
    • http://img.youtube.com/vi/THE-VIDEO-ID/2.jpg – small thumb
    • http://img.youtube.com/vi/THE-VIDEO-ID/3.jpg – small thumb

Gracias a http://www.joshuawinn.com/get-the-thumbnails-of-a-youtube-video-standard-url-and-file-names/

Bonus: tiene una explicación de uso para WP muy interesante.

Categorías
hoy aprendí ...

… a hacer un troceado de cadena en phyton

La idea es utilizar la primer palabra de un string.

Ejemplo:

titulo = "Prueba de troceado"titulo_partes = titulo.split()
estilo = titulo_partes[0] # devuelve "Prueba"

E insertarlo en un template HTML

Gracias a http://www.dotnetperls.com/split-python