[util] some more calc build deps work; experimental

This commit is contained in:
udeved 2015-06-06 13:14:01 +02:00
parent 2f878504f0
commit 72648f7271

View file

@ -30,36 +30,48 @@ create_set(){
} }
calculate_build_order(){ calculate_build_order(){
local is_split=false local is_split=false path=/tmp/calc
for pkg in $(cat /tmp/${name}.set);do mkdir -p $path
#[[ -f $path/*.{sort,set,makedeps,split} ]] &&
rm $path/*
pacman -Qqg base-devel > $path/base-devel.set
for pkg in $(cat $1/${name}.set);do
cd $pkg cd $pkg
source PKGBUILD source PKGBUILD
if [[ -n $pkgbase ]];then if [[ -n $pkgbase ]];then
is_split=true; echo "$pkgbase" >> /tmp/${name}.split is_split=true; echo "$pkgbase" >> $path/${name}.split
fi fi
for m in ${makedepends[@]};do for m in ${makedepends[@]};do
echo $m >> /tmp/${name}.makedeps echo $m >> $path/${name}.makedeps
done done
cd .. cd ..
done done
sort -u /tmp/${name}.split > /tmp/${name}.split.sort [[ -f $path/${name}.split ]] && sort -u $path/${name}.split > $path/${name}.split.sort
sort -u /tmp/${name}.makedeps > /tmp/${name}.makedeps.sort sort -u $path/${name}.makedeps > $path/${name}.makedeps.sort
rm /tmp/${name}.split [[ -f $path/${name}.split ]] && rm $path/${name}.split
#[[ -f /tmp/${name}.makedeps ]] && rm /tmp/${name}.makedeps
for d in $(cat /tmp/${name}.makedeps.sort);do for d in $(cat $path/${name}.makedeps.sort);do
for pkg in $(cat /tmp/${name}.set);do for pkg in $(cat $1/${name}.set);do
if [[ $pkg == $d ]];then if [[ $pkg == $d ]];then
echo $d >> /tmp/${name}.makedeps echo $d >> $path/${name}.makedeps
fi
done
done
sort -u $path/${name}.makedeps > $path/${name}.makedeps.sort
rm $path/${name}.makedeps
sort -u $path/${name}.makedeps.sort $path/base-devel.set > $path/filter.set
for b in $(cat $path/base-devel.set);do
for m in $(cat $path/filter.set);do
if [[ $b == $m ]];then
sed "/$m/d" -i $path/filter.set
fi fi
done done
done done
sort -u /tmp/${name}.makedeps > /tmp/${name}.makedeps.sort
#[[ -f /tmp/${name}.makedeps ]] && rm /tmp/${name}.makedeps
rm /tmp/${name}.*sort
} }
remove_set(){ remove_set(){