126 lines
2.6 KiB
Bash
Executable File
126 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
BASE_PATH="`dirname \"$0\"`" # relative
|
|
BASE_PATH="`( cd \"$BASE_PATH\"/../.. && pwd )`" # absolute
|
|
|
|
# Ruta de los archivos fuente
|
|
ARCHIVE=$BASE_PATH/archive
|
|
|
|
# Ruta donde se almacenan los datos procesados
|
|
DATA=$BASE_PATH/data
|
|
|
|
# Ruta donde se almacenan los datos procesados historicos
|
|
HISTORICAL_DATA=$BASE_PATH/data/historical
|
|
|
|
export PYTHONWARNINGS="ignore"
|
|
_VERBOSE=0
|
|
FORCE_DOWNLOAD=0
|
|
|
|
# verbose mode
|
|
function log () {
|
|
if [[ $_VERBOSE -eq 1 ]]; then
|
|
echo -e "$@"
|
|
fi
|
|
}
|
|
|
|
|
|
# Usage
|
|
function show_help() {
|
|
cat << EOF
|
|
Uso: ${0##*/} [-hvd]
|
|
Procesa los archivos fuente de municipios que publica el INE todos los años, y que están alojados en ../archive.
|
|
Si no los encuentra, los descarga.
|
|
|
|
-h muestra esta ayuda y termina
|
|
-d fuerza la descarga de los ficheros fuente aunque ya existan
|
|
-v modo verbose
|
|
|
|
EOF
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# A POSIX variable
|
|
OPTIND=1 # Reset
|
|
|
|
# Initialize our own variables:
|
|
|
|
while getopts "dh?vf:" opt; do
|
|
case "$opt" in
|
|
h|\?)
|
|
show_help
|
|
exit 0
|
|
;;
|
|
v)
|
|
_VERBOSE=1
|
|
export PYTHONWARNINGS=
|
|
;;
|
|
d)
|
|
FORCE_DOWNLOAD=1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Creamos los directorios si no existen
|
|
mkdir -p $ARCHIVE
|
|
mkdir -p $DATA
|
|
mkdir -p $HISTORICAL_DATA
|
|
|
|
|
|
CURRYEAR=`date +%y`
|
|
log Año actual: $CURRYEAR
|
|
log "----------------------------".
|
|
|
|
EXT=xls
|
|
|
|
for i in $( seq 4 $CURRYEAR); do
|
|
|
|
if [ "$i" -gt "15" ]; then
|
|
EXT=xlsx
|
|
fi
|
|
|
|
if [ "$i" -eq "4" ]; then
|
|
LINES_TO_STRIP=1
|
|
else
|
|
LINES_TO_STRIP=2
|
|
fi
|
|
|
|
YEAR=`printf %02d $i`
|
|
SOURCEFILE="$YEAR"codmun.$EXT
|
|
CSVFILE=municipios-20$YEAR.csv
|
|
JSONFILE=municipios-20$YEAR.json
|
|
|
|
log Procesando año 20$YEAR
|
|
|
|
cd $ARCHIVE
|
|
if [ ! -f $SOURCEFILE ] || [ $FORCE_DOWNLOAD -eq 1 ]; then
|
|
log No existe copia local del archivo $SOURCEFILE. DESCARGAMOS \\n
|
|
log
|
|
curl -O http://www.ine.es/daco/daco42/codmun/codmun"$YEAR"/$SOURCEFILE
|
|
log \\n
|
|
fi
|
|
|
|
log Generamos $CSVFILE
|
|
|
|
in2csv $SOURCEFILE |tail -n +$LINES_TO_STRIP >$HISTORICAL_DATA/$CSVFILE
|
|
|
|
log Generamos $JSONFILE
|
|
csvjson $HISTORICAL_DATA/$CSVFILE > $HISTORICAL_DATA/$JSONFILE
|
|
log "\\n----------------------------"\\n
|
|
|
|
|
|
done
|
|
|
|
log Creamos symlinks \(último procesado\)\\n
|
|
|
|
echo ln -rfs $HISTORICAL_DATA/$CSVFILE $DATA/municipios.csv
|
|
echo ln -rfs $HISTORICAL_DATA/$JSONFILE $DATA/municipios.json
|
|
|
|
ln -rfs $HISTORICAL_DATA/$CSVFILE $DATA/municipios.csv
|
|
ln -rfs $HISTORICAL_DATA/$JSONFILE $DATA/municipios.json
|
|
|
|
log Nota: Se puede ignorar el warning \"Discarded range with reserved name\" en caso de que se produzca
|
|
|