# # hdw-linux Puzzle script # # author: hackbard # # script to create the PKGS file which keeps the packages to get # downloaded and some meta information. # # see what Config file says . ./Config categories=`cat ./targets/$hdw_target/include | grep '^# \[C\]' | \ awk '{ print $3 }'` singlepackages=`cat ./targets/$hdw_target/include | grep '^# \[P\]' | \ awk '{ print $3 }'` # add arch specific repository categories="$categories $hdw_arch" # packages to get removed delpackages=`cat ./targets/$hdw_target/include | grep '^# \[R\]' | \ awk '{ print $3 }'` # check for dietlibc/glibc if [ "$hdw_use_dietlibc" = "1" ]; then [ -z "`echo $categories | grep diet`" ] && \ singlepackages="$singlepackages diet/dietlibc" delpackages="$delpackages base/glibc" fi # remove all PKGS files rm -rf ./download/*/PKGS # add all categorie packages for dir in $categories; do if [ -d ./packages/$dir ] ; then echo "Creating PKGS file for $dir ..." mkdir -p ./download/$dir rm -rf ./download/$dir/PKGS # parsing the config files now ((counter1 = 0)) ; echo "Parsing and creating PKGS file ..." for object in `ls -A --ignore="CVS" ./packages/$dir`; do if [ "`echo $delpackages | grep $dir/$object`" = "" ]; then export pkg=$object cat ./packages/$dir/$object/$object | grep '#\ \[D\]' | \ awk '/^# \[D\]/ { gsub("^# \\[D\\] *", ""); print ENVIRON["pkg"] " " $0 ; }' \ >> ./download/$dir/PKGS ((counter1 += 1)) fi done # parsing config files for patches. ((counter2 = 0)) ; echo "Parsing and adding patches to PKGS file ..." for object in `ls -A --ignore="CVS" ./packages/$dir`; do if [ "`echo $delpackages | grep $dir/$object`" = "" ]; then export pkg=$object cat ./packages/$dir/$object/$object | grep '#\ \[P\]' | \ awk '/^# \[P\]/ { gsub("^# \\[P\\] *", ""); print ENVIRON["pkg"] " " $0 ; }' \ >> ./download/$dir/PKGS ((counter2 += 1)) fi done echo "done." echo "$counter1 packages for $dir found." echo else echo "Error: didnt find the packages config files in ./packages/$dir" echo fi done echo "adding single packages from diffrent repositoriees to PKGS files ..." echo (( counter1 = 0 )) for object in $singlepackages; do dir=`echo $object | awk -F/ '{ print $1 }'` object=`basename $object` if [ -f ./packages/$dir/$object/$object ] ; then [ ! -d ./download/$dir ] && mkdir -p ./download/$dir echo "adding $object package from $dir" export pkg=$object cat ./packages/$dir/$object/$object | grep '#\ \[D\]' | \ awk '/^# \[D\]/ { gsub("^# \\[D\\] *", ""); print ENVIRON["pkg"] " " $0 ; }' \ >> ./download/$dir/PKGS (( counter1 += 1 )) # also add the patches! cat ./packages/$dir/$object/$object | grep '#\ \[P\]' | \ awk '/^# \[P\]/ { gsub("^# \\[P\\] *", ""); print ENVIRON["pkg"] " " $0 ; }' \ >> ./download/$dir/PKGS fi done echo echo "done." echo "added $counter1 single packages" echo