Re: a simple script for restoring downloaded debs
songbird wrote:
...
and the next version, which gets me down
to 61 missing files.
it is getting late so i'll have to take
another look at this again later...
=====
#!/bin/sh
#
#
debarch="/archives/debian/jessie"
dest="/var/cache/apt/archives"
pkglist=`dpkg -l | egrep '^ii ' | cut --delimiter=' ' -f3,3 | cut --delimiter=':' -f1,1`
versionlist=`dpkg -l | egrep '^ii ' | sed -e 's/ */ /g' | cut -d ' ' -f3,3`
for pkgname in $pkglist; do
version=`echo $versionlist | cut -d ' ' -f1,1`
debname=`apt-cache show $pkgname=$version | egrep '^Filename: ' | sed -e 's/^Filename: //' | awk --field-separator='/' -e '{print \$NF}'`
versionplay=`echo $version | grep ':' | wc -c`
if test ! "$versionplay" = "0" ; then
#echo "We have a funny version number, let's fix it in the filename"
versionhead=`echo $version | cut -d ':' -f1,1 | sed -e 's/$/%3a/'`
#echo "$pkgname $version $versionhead $debname"
debname=`echo $debname | sed -e "s/_/_$versionhead/"`
#echo "$pkgname $version $versionhead $debname"
fi
versionlist=`echo $versionlist | cut -d ' ' -f2-`
if test -e "$debarch/$debname" ; then
echo "$debarch/$debname $dest" > /dev/null
if test ! -e "$dest/$debname" ; then
cp -a "$debarch/$debname" $dest
fi
else
echo "$debname missing? version ->$version<-"
fi
done
chown root $dest/*
chgrp root $dest/*
sync
=====
songbird
Reply to: