﻿ÍNDICE:

1. Contenido de este fichero comprimido
2. Descripción del material asociado al script "revisa_cabeceras.sh"
   2.1. Descripción del script
   2.2. Descripción de los ficheros de resultados (se encuentran dentro de la carpeta "revisa_cabeceras")
3. Descripción del material asociado al script "adicion_cabeceras.sh" (versión 2)
   3.1. Descripción de los ficheros TXT (se encuentran dentro de la carpeta "adicion_cabeceras")
   3.2. Descripción del fichero "variables.cfg"
   3.3. Descripción del script
   3.4. Descripción del fichero "resultado.txt" (se encuentra dentro de la carpeta "adicion_cabeceras")
   3.5. Descripción del fichero "errores.txt" (se encuentra dentro de la carpeta "adicion_cabeceras")
   3.6. Cambios realizados en el script "adicion_cabeceras.sh" (versión 2)

-------------------------------------------------------------------------------------------------------

1. Contenido de este fichero comprimido:
   - Carpeta "Ejemplos". Contiene:
      - Carpeta "revisa_cabeceras":
         + Fichero "resultado_ficheros_con_cabecera.txt" con el listado de todos los ficheros que disponen de una cabecera
         + Fichero "resultado_ficheros_con_cabecera_extendida.txt" con el listado de todos los ficheros que disponen de una cabecera junto a su cabecera
         + Fichero "resultado_ficheros_sin_cabecera.txt" con el listado de los ficheros que no disponen de una cabecera
   - Script "revisa_cabeceras.sh" que genera: el listado de ficheros que disponen de una cabecera, el mismo listado pero esta vez cada fichero aparece 
      - Carpeta "adicion_cabeceras":
         + Fichero "resultado.txt" con el resumen de la última ejecución
         + Fichero "errores.txt" con el listado de los ficheros no encontrados
         + Ficheros TXT con las cabeceras y con el listado de archivos a modificar junto a su cabecera y el listado de ficheros quen no disponen de una cabecera
   - Script "adicion_cabeceras.sh" que añade las cabeceras recogidas en el/los ficheros TXT anteriores (versión 2)
   - Fichero con las variables globales (variables.cfg) necesarias para el correcto funcionamiento del script "adicion_cabeceras.sh"


2. Descripción del material asociado al script "revisa_cabeceras.sh":

2.1. Descripción del script:
El script puede ejecutarse tanto pasándole unos argumentos como sin ellos. Si no se le pasa ningún argumento el script seleccionará el directorio de trabajo actual y todas las extensiones de los ficheros a procesar por defecto (JAVA, PROPERTIES, CSS, XML, HTML, JSP y DTD). Aunque el script está bastante comentado a continuación se explica su funcionamiento (por defecto):
	1º Selecciona los ficheros a procesar por defecto (JAVA, PROPERTIES, CSS, XML, HTML, JSP y DTD) del directorio en el que se encuentra el script y sus subdirectorios.
	2º Comprueba si los ficheros disponen de una cabecera y en el caso de ficheros XML o HTML además, de una declaración XML.
	3º Guarda el resultado obtenido junto con las cabeceras encontradas en varios ficheros de resultados.
	4º Muestra los resultados por pantalla (número de ficheros procesados y el tiempo de ejecución del script)
El script también permite el uso de parámetros. Encontrará una explicación del uso de dichos parámetros en la "ayuda", a la que podrá acceder si añade el parámetro "-h" al script.

2.2. Descripción de los ficheros de resultados (se encuentran dentro de la carpeta "revisa_cabeceras"):
Estos ficheros recogen el listado todos los archivos encontrados junto con su dirección absoluta. Dependiendo de si el fichero dispone de una cabecera o no irá en un listado o en otro. Los ficheros generados por el script son:
	- Fichero "resultado_ficheros_con_cabecera.txt": contiene el listado de todos los ficheros que disponen de una cabecera
	- Fichero "resultado_ficheros_con_cabecera_extendido.txt": contiene el listado de todos los ficheros que disponen de una cabecera junto a su cabecera (no tiene por qué ser una cabecera de licenciamiento).
	- Fichero "resultado_ficheros_sin_cabecera.txt": contiene el listado de los ficheros que no disponen de una cabecera
Habrá que revisar el listado de ficheros con cabecera de licenciamiento "extendido" de forma manual para comprobar si realmente los ficheros disponen de una cabecera de licenciamiento o por el contrario únicamente disponen de unos comentarios. Una vez revisado dicho fichero procederemos a actualizar el fichero "resultado_ficheros_sin_cabecera.txt" añadiendo los ficheros que aunque aparecen en el listado de ficheros con cabecera no disponen de una.
Este fichero nos valdrá como base para la creación de un/os fichero/s TXT, origen de datos para la ejecución del script "adicion_cabeceras.sh".  	


3. Descripción del material asociado al script "adicion_cabeceras.sh" (versión 2):

3.1. Descripción de los ficheros TXT (se encuentran dentro de la carpeta "adicion_cabeceras"):
Los ficheros TXT están divididos en dos apartados:
	- La cabecera a añadir (marcada con la etiqueta ":cabecera")
	- Listado de los ficheros a procesar (marcado con la etiqueta ":ficheros")

Las cabeceras deberán estar delimitadas por "-->", que correspondería al inicio, y por "<--", que correspondería al final de la cabecera. En medio de ambas marcas deberá ir el texto de la cabecera. Dicho texto NO podrá incluir líneas vacías.
Sobre el listado de ficheros, se recomienda eliminar las líneas vacías aunque no es obligatorio.

3.2. Descripción del fichero "variables.cfg":
El fichero "variables.cfg" contiene las siguientes variables globales junto con su valor:
	- fichero --> "02_ficheros_nuevos_ctic.txt 03_ficheros_modificados.txt 01_ficheros_originales_inteco.txt"
	- cabecera --> "java properties css xml html jsp dtd" 
	- directorio --> $(echo "$(pwd)/oaw")
	- total_ficheros --> 0
	- ficheros_sin_cabecera --> 0
	- ficheros_con_cabecera --> 0
El orden de los ficheros en la variable "fichero" implica el orden de su procesamiento. En este caso se procesará primero el fichero "02_ficheros_nuevos_ctic.txt", seguido del fichero "03_ficheros_modificados.txt" y del fichero "01_ficheros_originales_inteco.txt". Cuando existan ficheros que aparezcan en varios listados, como por ejemplo en el listado 03 y 01, al añadirles las cabeceras del 03 ya no se añadirán las cabeceras del 01 (por eso es importante el orden de procesamiento).
En al variable "cabecera" se recogen todas las extensiones a procesar. En el caso de JSP, HTML o DTD, se utilizarán las cabeceras de XML, ya que son iguales a ésta.
La variable "directorio" contiene la dirección en la que se encuentran los ficheros a procesar. En este caso, la variable contiene el directorio "direccion_ubicacion_script/oaw" 
Las variables "total_ficheros", "ficheros_sin_cabecera" y "ficheros_con_cabecera" son las que nos mostrarán al finalizar la ejecución, el número de ficheros totales, tanto los procesados (a los que se les ha añadido la cabecera), como los no procesados.

3.3. Descripción del script:
El script está bastante comentado por lo que es relativamente fácil entender su funcionamiento. No obstante, a continuación se explica su funcionamiento (por defecto):
	1º Selecciona un fichero de TXT y lee la cabecera
	2º Genera una cabecera distinta para cada tipo de fichero y la guarda en un fichero temporal (uno por cada tipo de extensión)
	3º Guarda el listado de ficheros a procesar en una variable
	4º Recorre dicho listado y dependiendo el tipo de fichero que sea le añadirá una cabecera u otra. Si el fichero ya dispone de una cabecera no se le añade una nueva. Para saber si ya dispone de una, se compara la segunda y la tercera línea con la cabecera a añadir. Si son idénticas se obvia la adición. Cabe mencionar el caso particular de XML y HTML. En este caso, se comprueba si el fichero dispone de una declaración XML. Si es así, añade la cabecera después de dicha declaración. Si no dispone de ella, añade la cabecera en la primera línea como en los demás casos.
	5º Vuelve a ejecutar los pasos 1º al 4º hasta que no exista otro TXT que leer
	6º Elimina los fichero temporales con las cabeceras
	7º Muestra los resultados por pantalla (número de ficheros procesados y el tiempo de ejecución del script)

El script también permite el uso de parámetros. Encontrará una explicación del uso de dichos parámetros en la "ayuda", a la que podrá acceder si añade el parámetro "-h" al script.

3.4. Descripción del fichero "resultado.txt" (se encuentra dentro de la carpeta "adicion_cabeceras"):
Este fichero recoge el listado todos los archivos tratados, junto con su procedencia (fichero TXT de origen), si se le ha añadido la cabecera o no y un resumen final en el que se muestra:
	- el número de ficheros a los que se les ha añadido la cabecera
	- el número de ficheros a los que no se les ha añadido la cabecera
	- el número total de ficheros
	- el tiempo de ejecución del script
	
3.5. Descripción del fichero "errores.txt" (se encuentra dentro de la carpeta "adicion_cabeceras"):
En este fichero de texto se recoge el listado de archivos que no existen junto a su procedencia (fichero TXT de origen).

3.6. Cambios realizados en el script "adicion_cabeceras.sh" (versión 2):
	- se ha corregido un error que se producía cuando se pasaba el parámetro "-a" o "-all" al script debido a que el comando "find" dentro del procedimiento "listado_archivos" no mostraba todos los ficheros encontrados sino una parte semicompleta de ellos. Ahora muestra el listado completo de los ficheros.
	
