El proyecto original esta en github en este repositorio
https://github.com/alexiarstein/linaudit/
Sitio Linaudit en web Alexia
https://lexiworks.dev/linaudit/
#!/bin/bash
# Mensajes bonitos en pantalla y log
aviso (){
echo ===================================
echo $@
echo ===================================
}
# Variables
BASE=$HOME/alexiarstein
REPO=https://github.com/alexiarstein/linaudit
LOG=$BASE/$(basename $0).log
mkdir $BASE 2>/dev/null
# Marca inicio en log
date > $LOG
# Instalar el último RUST que exista ya que en Debian 12 es muy viejo.
aviso Instalando el ultimo rust, ya que en Bookworm no esta el ultimo que se necesita para compilar | tee -a $LOG
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | tee -a $LOG
# Para que se reconozca cargo se vuelve a cargar .bashrc asi se obtiene el nuevo PATH
source $HOME/.bashrc
# Borrar viejas descargas, compilaciones y paquetes
aviso Clonando el respositorio de linaudit | tee -a $LOG
cd $BASE
rm -rf $BASE/linaudit 2>/dev/null
# Instalando las tres dependencias básicas git cc
# unbuffer no es tan necesario pero es porque queda más lindo la salida en pantalla con TEE
if ! command -v git 2>/dev/null ; then
aviso Instalando dependencias del script - git | tee -a $LOG
sudo apt install git -y | tee -a $LOG
fi
if ! command -v cc 2>/dev/null ; then
aviso Instalando dependencias del script - build-essential or cc | tee -a $LOG
sudo apt install build-essential -y | tee -a $LOG
fi
if ! command -v unbuffer 2>/dev/null ; then
aviso Instalando dependencias del script - expect or unbuffer | tee -a $LOG
sudo apt install expect -y | tee -a $LOG
fi
# Aca realmente se baja el repositorio
git clone https://github.com/alexiarstein/linaudit | tee -a $LOG
cd $BASE/linaudit/
# Generamos los binarios dentro de la carpeta específica de RUST.
aviso Compilando todo | tee -a $LOG
# Con unbuffer mantenemos los colores inclusive si redirigimos stderr a stdout y le metemos todo a tee
unbuffer -p cargo build --release 2>&1 | tee -a $LOG
# De forma preventiva tambien instalamos cargo-deb ya que se necesita para compilar en deb proyectos RUST
# Probe formas declaradas oficiales pero no me deja por las dependencias de paquetes que no tiene Debian 12
aviso Instalando cargo-deb | tee -a $LOG
unbuffer -p cargo install cargo-deb 2>&1 | tee -a $LOG
# Dentro de la carpeta del proyecto se generará el deb con el binario
# Por alguna razón no incluye todo lo que se tendria que usar (servicio)
aviso Generando deb | tee -a $LOG
unbuffer -p cargo deb -p linaudit 2>&1 | tee -a $LOG
aviso Validando deb generado | tee -a $LOG
echo INFO | tee -a $LOG
dpkg --info $BASE/linaudit/target/debian/linaudit_*.deb | tee -a $LOG
echo CONTENIDO | tee -a $LOG
dpkg -c $BASE/linaudit/target/debian/linaudit_*.deb | tee -a $LOG
date >> $LOG
