#!/bin/sh
#
# repolocal.sh version 0.2
#
# (c) 2007 by Marcos Guglielmetti
# Under GNU GPL v2 or later
#
# Ayuda a crear un repositorio local para instalar paquetes
# que se han descargado en otro lado, y necesitan ser instalados
# mediante apt-get en una máquina sin conexión a Internet, en
# la mayoría de los casos, aunque puede estar conectada
# a Internet sin problemas, y simplemente se trataría
# de un repositorio más de paquetes... hecho a nuestra medida...


# Sólo como root
if [ $UID -eq 0 ];
then
  echo "Ok, root user..."
else
  echo "Se necesitan privilegios de root. / root permission needed."
exit
fi


if [ -d "$1" ]
then

echo "$1 existe, bien"

else
echo "El directorio $1 no existe, por favor, especifica un directorio, ejemplo /var/cache/apt/archives

The path $1 is wrong, please, give me a valid path, for instance: /var/cache/apt/archives

"
exit 1

fi

echo "
Crearé un repositorio local con los paquetes ubicados en $1
I will make a local package repository from $1
"

# escanea los paquetes
dpkg-scanpackages $1 /dev/null | gzip -9c > $1/Packages.gz


cat /etc/apt/sources.list | grep "$1"
if [ "$?" = "0" ]
then
echo "El repositorio para $1 ya había sido agregado, actualizando base de datos de apt-get y saliendo..."
apt-get update
exit
fi

echo "# Local Respository created by repolocal.sh
deb file:$1 ./" >> /etc/apt/sources.list

echo "Ready, now you must run apt-get update and you will be able to install packages from your local repository, press enter...

Listo, ahora debes correr apt-get update y podrás instalar programas desde tu repositorio local, presiona enter...
"
read
apt-get update

