Last active
August 17, 2019 20:41
-
-
Save PandaFoss/70748eaa117f0d1c2f03a42b1d30e433 to your computer and use it in GitHub Desktop.
Pequeño script que ayuda a descargar archivos desde la seccion de descargas de la web de la Universidad Nacional del Sur (Bahía Blanca)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Autor: Max Ferrer | |
# Email: maxi.fg13@gmail.com | |
############################# | |
# # | |
# Configuración # | |
# # | |
############################# | |
# Establezca a continuación la ruta al directorio de sincronización | |
# Por defecto se crea un directorio en la carpeta de usuario | |
SYNC_DIR="${HOME}/Web_UNS" | |
# A continuacion asigne una ruta al directorio de configuracion. | |
# El directorio de configuracion es necesario para llevar el registro | |
# de los archivos que se han actualizado. | |
CONFIG_DIR="${HOME}/.webuns" | |
# Web a descargar. No tocar a menos que se sepa lo que se está haciendo. | |
WEBPAGE='http://www.cs.uns.edu.ar/~mlg/ipoo/index.php?accion=download&dir=downloads' | |
############################# | |
# # | |
# Programa Principal # | |
# # | |
############################# | |
# Verificamos que exista el directorio de configuracion, sino lo creamos. | |
if [ ! -d ${CONFIG_DIR} ] | |
then | |
echo -e "El directorio ${CONFIG_DIR} no existe. Creandolo..."; | |
mkdir --parents ${CONFIG_DIR} | |
fi | |
# Verificamos que exista el directorio de sincronizacion, sino lo creamos. | |
if [ -d ${SYNC_DIR} ] | |
then | |
# Imprimimos texto en pantalla | |
echo -e "Sincronizando contenido, puede tomar algunos minutos..."; | |
# Creamos una carpeta temporal para descargar todo el contenido del servidor | |
mkdir --parents ${CONFIG_DIR}/temp | |
# Descargamos todo el contenido del servidor en la carpeta temporal | |
wget --quiet -nH --cut-dirs=2 --no-parent -r -P ${CONFIG_DIR}/temp ${WEBPAGE} | |
# Limpiamos contenido indeseado | |
rm --recursive ${CONFIG_DIR}/temp/index.php* ${CONFIG_DIR}/temp/imagenes ${CONFIG_DIR}/temp/includes ${CONFIG_DIR}/temp/robots.txt | |
# Reorganizamos elementos | |
mv ${CONFIG_DIR}/temp/downloads/* ${CONFIG_DIR}/temp | |
# Borramos elementos innecesarios | |
rm --dir ${CONFIG_DIR}/temp/downloads | |
# Creamos una variable para chequear si hay cambios entre los archivos que tenemos descargados y los nuevos | |
DIFF=$(diff --suppress-common-lines --recursive --brief ${CONFIG_DIR}/temp ${SYNC_DIR}) | |
if [ ${#DIFF} -gt 0 ] | |
then | |
# Imprimimos texto en pantalla | |
echo -e "Se sincronizarán los siguientes archivos:\n"; | |
# Generamos un log con los nuevos archivos | |
git diff --name-only ${SYNC_DIR} ${CONFIG_DIR}/temp > ${CONFIG_DIR}/webuns.log | |
# Limpiamos el log dejando sólo el nombre de los archivos | |
sed -i "s+${CONFIG_DIR}/temp/*++g" ${CONFIG_DIR}/webuns.log | |
# Mostramos el log en pantalla | |
cat ${CONFIG_DIR}/webuns.log | |
# Copiamos los nuevos archivos a su directorio final | |
cp --recursive ${CONFIG_DIR}/temp/* ${SYNC_DIR}/ | |
# Borramos la carpeta temporal | |
rm --recursive ${CONFIG_DIR}/temp | |
fi | |
# Borramos carpeta temporal si aun existe | |
if [ -d ${CONFIG_DIR}/temp ] | |
then | |
rm --recursive ${CONFIG_DIR}/temp | |
fi | |
# Salimos sin errores | |
exit 0 | |
else | |
echo -e "El directorio ${SYNC_DIR} no existe. Creandolo..."; | |
mkdir --parents ${SYNC_DIR} | |
# Descargo todo | |
echo -e "Descargando todos los ficheros, puede tomar algo de tiempo..."; | |
wget --quiet -nH --cut-dirs=2 --no-parent -r -P ${SYNC_DIR} ${WEBPAGE} | |
# Borro archivos innecesarios | |
echo -e "Borrando archivos innecesarios..."; | |
rm --recursive ${SYNC_DIR}/index.php* ${SYNC_DIR}/imagenes ${SYNC_DIR}/includes ${SYNC_DIR}/robots.txt | |
# Quito del directorio download y lo paso al actual | |
echo -e "Acomodando archivos y finalizando..."; | |
mv ${SYNC_DIR}/downloads/* ${SYNC_DIR} | |
rm --dir ${SYNC_DIR}/downloads | |
# Salimos sin errores | |
exit 0 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment