All pastes #227610 Raw Edit

Miscellany

public text v1 · immutable
#227610 ·published 2006-10-29 11:48 UTC
rendered paste body
#!/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