#!/bin/sh -x
# Copyright Jérôme Benoit, released under GPL
YUM_DOWNLOADER_BIN=`which yumdownloader`
RPM_BIN=`which rpm`
RPM_DL_DIR="/data/rpmrecover"
RPMPKGS_LIST_DEFAULT_PATH="/var/log/rpmpkgs"
RPMPKGS_LIST_FILE_NAME="rpmpkgs.defaut"
RPMPKGS_LIST_FILE_NAME_LATEST="rpmpkgs.lastest"
RPMPKGS_LIST_FILE_GEN="rpmpkgs.gen"
RPM_OPTS_RECOVERDB="-ivh --noscripts --notriggers --justdb"
RPM_OPTS_REINSTALL="-Uvh --replacepkgs --nodeps"
if [ ! -d $RPM_DL_DIR ]
then
mkdir -p $RPM_DL_DIR
fi
copy_default_system_list()
{
#if [ ! -f $RPM_DL_DIR/$RPMPKGS_LIST_FILE_NAME ]
#then
cp -fp $RPMPKGS_LIST_DEFAULT_PATH $RPM_DL_DIR/$RPMPKGS_LIST_FILE_NAME
#fi
}
gen_another_default_system_list()
{
$RPM_BIN -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' 2>&1 \
| /bin/sort > $RPM_DL_DIR/$RPMPKGS_LIST_FILE_NAME_LATEST
}
gen_rpm_list()
{
$RPM_BIN -qa --qf '%{name}.%{arch}\n' 2>&1 \
| /bin/sort > $RPM_DL_DIR/$RPMPKGS_LIST_FILE_GEN
}
# first copy and generate default system list, for direct use by rpm
copy_default_system_list
gen_another_default_system_list
# Then generate a rpm list for use by yumdownloader
gen_rpm_list
# Download rpm list in $RPM_DL_DIR
dl_rpm()
{
if [ ! -x $YUM_DOWNLOADER_BIN ]
then
yum install yum-utils
fi
YUMDL_OPTS="--destdir $RPM_DL_DIR"
for RPM in `cat $RPM_DL_DIR/$RPMPKGS_LIST_FILE_GEN`
do
$YUM_DOWNLOADER_BIN $YUMDL_OPTS $RPM
done
}
# comment out to just save/generate rpm list
#dl_rpm
## choose what to do by commenting out ... be smarter later ...
# reinit rpm db with no install
cd $RPM_DL_DIR
#$RPM_BIN $RPM_OPTS_RECOVERDB *.rpm
#$RPM_BIN $RPM_OPTS_RECOVERDB $RPMPKGS_LIST_FILE_NAME
#$RPM_BIN $RPM_OPTS_RECOVERDB $RPMPKGS_LIST_FILE_NAME_LATEST
# reinit rpm db with install of RPMS with no deps check and with scriptlets
cd $RPM_DL_DIR
#$RPM_BIN $RPM_OPTS_REINSTALL *.rpm
#$RPM_BIN $RPM_OPTS_REINSTALL $RPMPKGS_LIST_FILE_NAME
#$RPM_BIN $RPM_OPTS_REINSTALL $RPMPKGS_LIST_FILE_NAME_LATEST