sstate-cache-management: rm_by_stamps - discover all suffixes like remove_duplicated does

* instead of hard coding list of sstate enabled task use
  the same function as remove_duplicated to find them in
  sstate-cache directory

(From OE-Core rev: dfdb397db5865c3287cd9ccb5ea9a336eb77ca90)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Martin Jansa 2014-03-29 11:34:13 +01:00 committed by Richard Purdie
parent fec6bd763f
commit 3f0425dc12
1 changed files with 11 additions and 9 deletions

View File

@ -324,16 +324,23 @@ rm_by_stamps (){
local cache_list=`mktemp` || exit 1
local keep_list=`mktemp` || exit 1
local rm_list=`mktemp` || exit 1
local suffixes
local sums
local all_sums
suffixes="populate_sysroot populate_lic package_write_ipk \
package_write_rpm package_write_deb package packagedata deploy"
# Total number of files including sstate-, .siginfo and .done files
total_files=`find $cache_dir -type f -name 'sstate*' | wc -l`
# Save all the state file list to a file
find $cache_dir -type f -name 'sstate*' | sort -u -o $cache_list
echo "Figuring out the suffixes in the sstate cache dir ... "
local sstate_suffixes="`sed 's%.*/sstate:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^_]*_\([^:]*\)\.tgz.*%\1%g' $cache_list | sort -u`"
echo "Done"
echo "The following suffixes have been found in the cache dir:"
echo $sstate_suffixes
# Figure out all the md5sums in the stamps dir.
echo "Figuring out all the md5sums in stamps dir ... "
for i in $suffixes; do
for i in $sstate_suffixes; do
# There is no "\.sigdata" but "_setcene" when it is mirrored
# from the SSTATE_MIRRORS, use them to figure out the sum.
sums=`find $stamps -maxdepth 3 -name "*.do_$i.*" \
@ -344,11 +351,6 @@ rm_by_stamps (){
done
echo "Done"
# Total number of files including sstate-, .siginfo and .done files
total_files=`find $cache_dir -type f -name 'sstate*' | wc -l`
# Save all the state file list to a file
find $cache_dir -type f -name 'sstate*' | sort -u -o $cache_list
echo "Figuring out the files which will be removed ... "
for i in $all_sums; do
grep ".*/sstate:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:${i}_.*" $cache_list >>$keep_list