File sort_patterns of Package patterns-openSUSE

#! /bin/sh

# don't forget: export RPM_BUILD_ROOT and RPM_SOURCE_DIR
version=$1
release=$2
uname=$3
product=$4

if test -d $RPM_BUILD_ROOT; then
  echo RPM_BUILD_ROOT already exists!
fi

if ! test -f $RPM_SOURCE_DIR/preprocess; then
  echo RPM_SOURCE_DIR/preprocess does not exist
  exit 1
fi

mkdir -p $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/CD1/suse/setup/descr

case $uname in
  x86_64|s390x)
    pat_ext="32bit"
    ;;
  ia64)
    pat_ext="x86"
    ;;
  ppc)
    pat_ext="64bit"
    ;;
  ppc64)
    pat_ext="32bit"
    ;;
  *)
    pat_ext=""
esac

cp_path=/usr/sbin/create_pattern.sh
if test -f $RPM_SOURCE_DIR/create_pattern.sh; then
  cp_path=$RPM_SOURCE_DIR/create_pattern.sh
fi

sh $cp_path $version $release $uname $RPM_BUILD_ROOT $pat_ext

set +x
descrdir=$RPM_BUILD_ROOT/CD1/suse/setup/descr

# Handle architecture dependend patterns
case $uname in
  i*86|x86_64)
    ;;
  *)
    rm -fv $descrdir/xen_server*.pat
    ;;
esac
if test "$uname" != ia64; then
  rm -vf $descrdir/x86*.pat
fi
if test "$pat_ext" != 64bit; then
  rm -vf $descrdir/64bit*.pat
fi
if test "$pat_ext" != 32bit; then
  rm -vf $descrdir/32bit*.pat
fi

mkdir sortin
if test "$product" = "openSUSE"; then
grep update_test toinstall/rest_dvd/requires || rm -v $descrdir/update_test*.pat
cat $descrdir/rest_cd_kde4* > sortin/kde4_cd
cat $descrdir/rest_promo_dvd* > sortin/promo_dvd
rm $descrdir/rest_promo_dvd*
cat $descrdir/rest_cd_gnome* > sortin/gnome_cd 
cat $descrdir/rest_cd_x11* > sortin/x11_cd
cat $descrdir/non_oss*.pat > sortin/non_oss
rm $descrdir/non_oss_opt*.pat
echo > sortin/dvd
for pat in $descrdir/*.pat; do
   pat=`basename $pat`
   nicename=`echo $pat | sed -e "s,-$version.*,,"`
   basepat=$nicename
   if test -n "$pat_ext"; then
      basepat=`echo $basepat | sed -e "s,-$pat_ext,,"`
   fi
   if grep -q -x $nicename toinstall/rest_cd_kde4/{requires,recommends}; then
     cat $descrdir/$pat >> sortin/kde4_cd
   fi
   if grep -q -x $nicename toinstall/rest_cd_gnome/{requires,recommends}; then
     cat $descrdir/$pat >> sortin/gnome_cd
   fi
   if grep -q -x $nicename toinstall/rest_promo_dvd/{requires,recommends}; then
     cat $descrdir/$pat >> sortin/promo_dvd
   fi
   if grep -q -x $nicename toinstall/rest_cd_x11/requires; then
     cat $descrdir/$pat >> sortin/x11_cd
   fi
   if grep -q -x $basepat toinstall/rest_dvd/{requires,recommends} || test "$nicename" = rest_dvd; then
     cat $descrdir/$pat >> sortin/dvd
   else
     cat $descrdir/$pat >> sortin/ftp
   fi
   rm $descrdir/$pat
done
fi
if test "$product" = "sled"; then
echo > sortin/sled
for pat in $descrdir/*.pat; do
   pat=`basename $pat`
   nicename=`echo $pat | sed -e "s,-$version.*,,"`
   cat $descrdir/$pat >> sortin/sled
   rm $descrdir/$pat
done
fi

if test "$product" = "sles"; then
echo > sortin/sles
for pat in $descrdir/*.pat; do
   pat=`basename $pat`
   nicename=`echo $pat | sed -e "s,-$version.*,,"`
   cat $descrdir/$pat >> sortin/sles
   rm $descrdir/$pat
done
fi

if test "$product" = "sdk"; then
echo > sortin/sdk
for pat in $descrdir/*.pat; do
   pat=`basename $pat`
   nicename=`echo $pat | sed -e "s,-$version.*,,"`
   cat $descrdir/$pat >> sortin/sdk
   rm $descrdir/$pat
done
fi

cd sortin
for i in *; do
  mv $i $descrdir/$i-$version-$release.$uname.pat
done
cd ..
rmdir sortin

openSUSE Build Service is sponsored by