All pastes #505545 Raw Edit

Untitled

public text v1 · immutable
·published 2007-05-23 16:49 UTC
rendered paste body
#!/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