#!/bin/bash
INSTALL_LOGS="/var/log/sorcery/install"
DATE=$(date +%Y%m%d)
STATE=installed
STATE_FILE=/var/log/packages.restore
SPELLS_FILE=/var/log/spells.restore
IGNORED_DIRS="/var /root /home /etc /tmp /dev"
rm -f $SPELLS_FILE
touch $SPELLS_FILE
echo "Generating initial spell list"
for ss in $(ls -1 /var/lib/sorcery/codex/); do
echo "Parsing ${ss}/codex.index"
for sss in $(cat /var/lib/sorcery/codex/${ss}/codex.index | awk '{ print $1 }'); do
echo $sss >> $SPELLS_FILE
done
done
echo "Done with inital spell list"
function check_install_log()
{
local i
echo -n "-"
for i in $(cat ${INSTALL_LOGS}/${1})
do
if ! grep -q "/var" <<< "$i" ||
! grep -q "/root" <<< "$i" ||
! grep -q "/home" <<< "$i" ||
! grep -q "/etc" <<< "$i" ||
! grep -q "/tmp" <<< "$i" ||
! grep -q "/dev" <<< "$i"
then
if [[ -e "${i}" ]]
then
echo -e -n "\n${i}\n"
echo -n "-"
return 0
fi
fi
done
echo -n "-"
return 1
}
function mark_possible_spell()
{
local i
local version
echo -n "."
for i in $(cat $SPELLS_FILE)
do
if grep -q "$i" <<< "$1"
then
version="$(gaze -q version "$i" | tail -n2 | awk -F"|" '{ print $4 }')"
if [[ -e ${INSTALL_LOGS}/${i}-${VERSION} ]]
then
echo -n -e "\n${i}:${DATE}:${STATE}:${version}\n"
echo "${i}:${DATE}:${STATE}:${version}" > ${STATE_FILE}
echo -n "*"
fi
fi
done
echo -n "."
}
function main()
{
local i
local c
ca=$(ls -1 *|wc -l)
c=0
c1=0
cd ${INSTALL_LOGS}
for i in $(ls -1 *)
do
echo -n "+"
if check_install_log ${i}
then
mark_possible_spell ${i}
let c1=$c1+1
echo -n -e "\n$c1\n"
fi
echo -n "+"
let c=$c+1
echo -n -e "\n$c/$ca\n"
done
echo -n "***"
}
main