leeme.sh

Sunday, December 3rd, 2006 - Español English

Desde hace años, tengo como costumbre describir todo lo que hago en ficheritos LEEME repartidos por todo el disco duro. Aquí está el script que uso para crearlos y editarlos. Puedes ver el código si pasas a la siguiente página…

  1.  
  2. #!/bin/bash
  3. #
  4. # 'leeme':
  5. # vie ene 11 00:47:12 CET 2003 * Miguel de Benito <nonick AT 8027 DOT org>
  6. #
  7. # Edita ficheros LEEME.
  8. # Están compuestos de entradas delimitadas por $MARCA. La entrada más antigua
  9. # en última posición (al final del fichero)
  10. #
  11. # ---> Esta versión es la de lagash, incluye una marca con el nombre del equipo
  12. # en el que se editó el fichero LEEME
  13.  
  14. FICH=./LEEME
  15. MARCA="^###.*MBD.*$"
  16. TMP=$(mktemp '/tmp/leeme.XXXXXX')
  17.  
  18.  
  19. # Devuelve la fecha de modificación de su argumento en segundos
  20. # desde época.
  21. function mtime
  22. {
  23. find "$1" -printf "%C@"
  24. }
  25.  
  26.  
  27. if [ -f $FICH ]; then
  28. echo "$FICH encontrado. $(grep $MARCA $FICH |wc -l) ediciones."
  29. echo "Últimas 10:"
  30. grep $MARCA $FICH | tail -10
  31. read -p "Editar? [s]" -n 1 entrada
  32. else
  33. echo "$FICH no encontrado"
  34. read -p "Crear? [s]" -n 1 entrada
  35. fi
  36.  
  37. echo
  38.  
  39. case $entrada in
  40. 's'|'S'|'y'|'Y'|'')
  41. echo -e "### [ MBD $(date) (@${HOSTNAME}) ]\n\n\n" > $TMP
  42.  
  43. [ -f $FICH ] && cat $FICH >> $TMP
  44.  
  45. fecha1=$(mtime $TMP)
  46. /usr/bin/vim +3 -c "set textwidth=80" $TMP
  47. fecha2=$(mtime $TMP)
  48.  
  49. if [ "$fecha1" == "$fecha2" ]; then
  50. echo "Sin modificaciones."
  51. else
  52. cp $TMP $FICH
  53. fi
  54. ;;
  55. 'n'|'N')
  56. ;;
  57. esac
  58.  
  59. rm $TMP
  60. exit 0
  61.  

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>