pastebin - collaborative debugging

pastebin is a collaborative debugging tool allowing you to share and modify code snippets while chatting on IRC, IM or a message board.

This site is developed to XHTML and CSS2 W3C standards. If you see this paragraph, your browser does not support those standards and you need to upgrade. Visit WaSP for a variety of options.

Bash pastebin - collaborative debugging tool View Help


Posted by Radio_FM on Tue 5 Aug 00:19
report abuse | View followups from Radio_FM and jpadillapetramascom | download | new post

  1. #!/bin/sh
  2. # radio futura (C) 2008 por Marcos Guglielmetti
  3. # Software Libre bajo licencia GNU GPL v3 o posterior
  4.  
  5. #    This program is free software: you can redistribute it and/or modify
  6. #    it under the terms of the GNU General Public License as published by
  7. #    the Free Software Foundation, either version 3 of the License, or
  8. #    (at your option) any later version.
  9. #
  10. #    This program is distributed in the hope that it will be useful,
  11. #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. #    GNU General Public License for more details.
  14.  
  15. #    You should have received a copy of the GNU General Public License
  16. #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  17.  
  18. # TODO: separar los procesos: grabar, subir, controlar que salga bien
  19. # V 0.23
  20.  
  21. # 0.1: sáb ago  2 2008  nace el programa :P
  22. # 0.2: dom ago  3 2008  resuelto el problema de lftp con ssl
  23. # 0.21: abre firefox cuando termina de grabar todo lo del día
  24. # mostrando lo grabado.
  25. # 0.22: le tuve que sacar el -q a ecasound porque si fallaba no avisaba
  26. # cuál era el problema, por ejemplo, si otro programa como audacity
  27. # estaba usando la entrada oss, fallaba (pensar que quizá tengamos
  28. # que usar jackd)
  29. # 0.23 reducido el espacio del nombre de archivo, eliminados algunos -
  30. # dado que sino en el navegador web se veía incompleto el nombre
  31. # y se prestaba a confusión, ahora se ve así:
  32. #      Name                    Last modified      Size  Description
  33. #      dom03082008_22-05-hs..> 03-Aug-2008 20:20   18M  
  34.  
  35. # longitud de cada grabación, en segundos: 3600 = 1 hora
  36. tiempo=3600
  37.  
  38.  
  39.  
  40. # fechas
  41. ANIO00=`date +%y`
  42. ANIO="20$ANIO00"
  43. MES=`date +%m`
  44. DIANUM=`date +%d`
  45. HORA=`date | cut -b12-13`
  46. MIN=`date | cut -b15-16`
  47. # necesitamos los segundos para sincronizar perfectamente
  48. # el comienzo de la primer grabación
  49. SEG=`date | cut -b18-19`
  50. DIANOMBRE=`date | cut -b 1-3`
  51.  
  52.  
  53.  
  54. # Colores
  55. # ANSI COLORS
  56. CRE="
  57. "
  58. NORMAL=""
  59. # RED: Failure or error message
  60. RED=""
  61. # GREEN: Success message
  62. GREEN=""
  63. # YELLOW: Descriptions
  64. YELLOW=""
  65. # BLUE: System messages
  66. BLUE=""
  67. # MAGENTA: Found devices or drivers
  68. MAGENTA=""
  69. # CYAN: Questions
  70. CYAN=""
  71. # BOLD WHITE: Hint
  72. WHITE=""
  73.  
  74.  
  75. # Haremos que lo pregunte la cantidad de horas a grabar y subir al server
  76. clear
  77. echo "$YELLOW
  78. ¿Cuántas horas grabaremos?  $NORMAL
  79. (ingresa un número y presiona [enter])"
  80. read canthoras
  81.  
  82. contador=0
  83.  
  84.  
  85.  
  86. # debe advertir al usuario, que si no estamos
  87. # en el minuto 00 o cercano, se desincronizará todo
  88. # podemos hacer que pregunte si quiere sincronizarlo...
  89. # ¿o lo forzamos?
  90.  
  91. # ver qué exactitud manejaremos, si vale pasarse por 1 o 2 o 3 mins
  92. if [ "$MIN" -gt 2 ]
  93. then
  94. esperar=`expr 60 - $MIN`
  95. echo "$RED
  96. ATENCION: $NORMAL
  97.  
  98. Estamos en el minuto $YELLOW $MIN $NORMAL de la hora $HORA
  99. "
  100.  
  101. # Entonces, podemos esperar 60 - $MIN, y comenzar recién en ese momento
  102. # así queda todo sincronizado! :D
  103.  
  104. echo "$YELLOW
  105. Grabaremos $esperar minutos y luego comenzamos a grabar
  106. desde el minuto 00... $NORMAL"
  107. #read sn
  108. #if [ "$sn" = "s" ]
  109. #then
  110.  
  111.  
  112. # había un problema con lftp y las conexiones ssl, lo resolví con esto:
  113. #http://www.mail-archive.com/lftp@uniyar.ac.ru/msg03194.html
  114.  
  115. # continuando con el proceso...
  116.  
  117. archivo="$DIANOMBRE$DIANUM$MES$ANIO-$HORA-$MIN-hs.ogg"
  118.  
  119. echo "$YELLOW Grabando $esperar minutos, luego retomamos desde el minuto 0 para la próxima hora... $NORMAL
  120. Nombre del archivo: $archivo
  121. "
  122. # como ecasound funciona en segundos, debemos multiplicar esperar x 60
  123. # y le restamos los segundos demás que lleva esta hora mediante la variable $SEG
  124. # Así la próxma grabación comenzará en el minuto 0 segundo 0
  125. grabar_segundos=`expr $esperar \* 60 - $SEG`
  126.  
  127.  
  128.  
  129.  
  130.  
  131. echo "total de segundos a grabar: $RED $grabar_segundos $NORMAL, lo cual representa $esperar minutos"
  132.  
  133. #grabar_segundos=20 #
  134.  
  135. # -q es para que no muestre toda esa salida enorme
  136. ecasound -t:$grabar_segundos -i:/dev/dsp -o:$archivo,56000
  137.  
  138. # NOTE: lftp tiene que estar con set ftp:ssl-allow no
  139. # para que funcione en algunos casos...
  140.  
  141. # creando un directorio para el día de hoy en el servidor web
  142. echo "Creando un directorio para el día de hoy en el servidor
  143. de Internet..."
  144. lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mkdir /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO; bye" &
  145.  
  146.  
  147. # subiendo el resultado a un servidor web http://ftp.nuestro_sitio.com/users/miusuario
  148. echo "$CYAN Subiendo el audio grabado al servidor web http://ftp.nuestro_sitio.com/users/miusuario, y continuando con la grabación.
  149. $NORMAL"
  150. lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mput $archivo -O /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/; bye" &
  151.  
  152.  
  153. #fi
  154.  
  155. fi
  156.  
  157. # creando un directorio para el día de hoy en el servidor web
  158. echo "Creando un directorio para el día de hoy en el servidor
  159. de Internet..."
  160. lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mkdir /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO; bye" &
  161. # continuando con el proceso...
  162.  
  163.  
  164.  
  165.  
  166. while [ $contador -lt "$canthoras" ]
  167. do
  168.  
  169. # hay que volver a definirlo, dado que la grabación
  170. # puede cambiar justo de mes o día, mientras se está ejecutando...
  171. ANIO00=`date +%y`
  172. ANIO="20$ANIO00"
  173. MES=`date +%m`
  174. DIANUM=`date +%d`
  175. #echo "$ANIO/$MES/$DIANUM" # debug
  176. HORA=`date | cut -b12-13`
  177. MIN=`date | cut -b15-16`
  178. DIANOMBRE=`date | cut -b 1-3`
  179.  
  180. echo "Comenzando grabación año $ANIO, mes $MES, dia $DIANUM, hora $HORA, minuto $MIN" | festival --tts &
  181.  
  182. contador=`expr $contador + 1`
  183. archivo="$DIANOMBRE$DIANUM$MES$ANIO-$HORA-$MIN-hs.ogg"
  184.  
  185.  
  186. echo "
  187. Hemos grabado:$YELLOW $contador $NORMAL  horas
  188. Grabaremos un total de $YELLOW $canthoras $NORMAL horas
  189. Nombre del archivo: $archivo
  190.  
  191. Grabando... (presiona control+c para abortar)
  192. "
  193.  
  194. # 3600 segundos es una hora.
  195. ecasound -t:$tiempo -i:/dev/dsp -o:$archivo,56000
  196.  
  197.  
  198. # subiendo el resultado a un servidor web http://ftp.nuestro_sitio.com/users/miusuario
  199. echo "$CYAN Subiendo el audio grabado al servidor web http://ftp.nuestro_sitio.com/users/miusuario, y continuando con la grabación...
  200. $NORMAL"
  201. lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "mput $archivo -O /Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/; bye" &
  202.  
  203. done
  204.  
  205. echo "
  206. Hemos grabado:$YELLOW $contador $NORMAL  horas
  207.  
  208. Fin de la grabación.
  209. "
  210.  
  211. echo "$CYAN Archivos subidos hoy a Internet: $NORMAL"
  212.  
  213. # vemos qué subimos al server
  214. lftp ftp.nuestro_sitio.com -u nombre_usuario,clave -e "ls /users/miusuario/Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/; bye"
  215.  
  216. # por ahora abrimos firefox, no es mala idea
  217. firefox http://ftp.nuestro_sitio.com/users/miusuario/Radio_FM_$DIANOMBRE$DIANUM$MES$ANIO/

Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:

To highlight particular lines, prefix each line with @@


Remember me so that I can delete my post