#!/bin/sh
#script t2raw2split has already been run.
#now create 'packages.txt'

. /etc/rc.d/PUPSTATE
CURRDIR="`pwd`"

#these variables must be edited manually...
PROFILEPATH="/mnt/hda6/t2-15oct07/t2-trunk/target/piglet"
TARGETPATH="/mnt/hda3/puppy-development"
SPLITPKGSPATH="${TARGETPATH}/t2packages-split"

if [ ! -d $SPLITPKGSPATH ];then
 echo "The path in which to create the split pkgs has to be set in script. Exiting."
 exit
fi

NLS_TARGETDIR="${SPLITPKGSPATH}/packages-nls"
DOC_TARGETDIR="${SPLITPKGSPATH}/packages-doc"
DEV_TARGETDIR="${SPLITPKGSPATH}/packages-dev"
EXE_TARGETDIR="${SPLITPKGSPATH}/packages-exe"

#kernel only...
KERNELONLY=' acx100 adm8211 at76c503a bcm43xx-fw ipw2100-fw ipw2200-fw linux26 madwifi rt61 rt2400 rt2500 rt2570 '

#list of packages that will go into the devx module only...
DEVXONLY=' autoconf automake bin86 binutils bison cmake compositeproto cvs damageproto dietlibc evieext fixesproto fontcacheproto fontsproto flex gcc gccmakedep gdb gettext groff imake inputproto intltool kbproto libcap linux-header m4 make man man-pages mkinitrd nasm panoramixproto patch patchutils perl perl-compress-zlib perl-digest-sha1 perl-extutils-depends perl-extutils-pkgconfig perl-html-parser perl-uri perl-xml-parser perl-xml-simple pkgconfig python randrproto recordproto renderproto resourceproto rman rsync scrnsaverproto strace subversion texinfo trapproto videoproto xcmiscproto xextproto xf86bigfontproto xf86dgaproto xf86miscproto xf86vidmodeproto xineramaproto xtrans xf86driproto glproto '
# intltool ?
# gcc, perl* -- not quite all.

#list of all xorg packages...
XORGALL=' appres bdftopcf beforelight bigreqsproto bitmap cf compositeproto damageproto dmxproto driconf editres encodings evieext fdclock fixesproto font-adobe font-adobe-utopia font-adobe-utopia-type1 font-alias font-arabic-misc font-bh font-bh-lucidatypewriter font-bh-ttf font-bh-type1 font-bitstream font-bitstream-type1 fontcacheproto fontconfig font-cronyx-cyrillic font-cursor-misc font-daewoo-misc font-dec-misc font-ibm-type1 font-isas-misc font-jis-misc font-micro-misc font-misc-cyrillic font-misc-misc font-mutt-misc font-schumacher-misc font-screen-cyrillic font-sony-misc fontsproto font-sun-misc fonttosfnt font-util font-winitzki-cyrillic font-xfree86-type1 fslsfonts fstobdf gccmakedep glproto iceauth ico imake inputproto kbproto lbxproxy libdmx libdrm libfontenc libfs libice liblbxutil liboldx libpciaccess libpthread-stubs libsm libx11 libxau libxaw libxcb libxcomposite libxcursor libxdamage libxdmcp libxevie libxext libxfixes libxfont libxfontcache libxft libxi libxinerama libxkbfile libxkbui libxmu libxp libxpm libxprintapputil libxprintutil libxrandr libxrender libxres libxscrnsaver libxt libxtrap libxtst libxv libxvmc libxxf86dga libxxf86misc libxxf86vm listres luit makedepend mkcomposecache mkfontdir mkfontscale oclock package-modular-x-deps.sh package-modular-x.sh panoramixproto pclcomp printproto proxymngr randrproto recordproto rendercheck renderproto resourceproto rgb rstart scripts scrnsaverproto sessreg setxkbmap showfont smproxy trapproto twm videoproto viewres x11perf xauth xbacklight xbiff xbitmaps xcalc xcb-proto xclipboard xclock xcmiscproto xcmsdb xconsole xcursorgen xcursor-themes xdbedizzy xditview xdm xdpyinfo xdriinfo xedit xev xextproto xeyes xf86bigfontproto xf86dga xf86dgaproto xf86driproto xf86-input-acecad xf86-input-aiptek xf86-input-calcomp xf86-input-citron xf86-input-digitaledge xf86-input-dmc xf86-input-dynapro xf86-input-elo2300 xf86-input-elographics xf86-input-evdev xf86-input-evtouch xf86-input-fpit xf86-input-fujitouch xf86-input-hyperpen xf86-input-jamstudio xf86-input-joystick xf86-input-keyboard xf86-input-magellan xf86-input-magictouch xf86-input-microtouch xf86-input-mouse xf86-input-mutouch xf86-input-palmax xf86-input-penmount xf86-input-sample xf86-input-spaceorb xf86-input-summa xf86-input-tek4957 xf86-input-ur98 xf86-input-vmmouse xf86-input-void xf86miscproto xf86rushproto xf86-video-amd xf86-video-apm xf86-video-ark xf86-video-ati xf86-video-avivo xf86-video-chips xf86-video-cirrus xf86-video-cyrix xf86-video-dummy xf86-video-fbdev xf86-video-glide xf86-video-glint xf86-video-i128 xf86-video-i740 xf86-video-i810 xf86-video-impact xf86-video-imstt xf86-video-mga xf86-video-neomagic xf86-video-newport xf86-video-nouveau xf86-video-nsc xf86-video-nv xf86-video-rendition xf86-video-s3 xf86-video-s3virge xf86-video-savage xf86-video-siliconmotion xf86-video-sis xf86-video-sisusb xf86-video-sunbw2 xf86-video-suncg14 xf86-video-suncg3 xf86-video-suncg6 xf86-video-sunffb xf86-video-sunleo xf86-video-suntcx xf86-video-tdfx xf86-video-tga xf86-video-trident xf86-video-tseng xf86-video-vermilion xf86-video-vesa xf86-video-vga xf86-video-via xf86-video-vmware xf86-video-voodoo xf86-video-xgi xf86vidmodeproto xfd xfontsel xfs xfsinfo xfwp xgamma xgc xhost xineramaproto xinit xkbcomp xkbdata xkbevd xkbprint xkbutils xkill xload xlogo xlsatoms xlsclients xlsfonts xmag xman xmessage xmh xmodmap xmore xorg-server xorg-util-macros xphelloworld xplsprinters xpr xprehashprinterlist xprop xproto xproxymanagementprotocol xrandr xrdb xrefresh xset xsetmode xsetpointer xsetroot xsm xstdcmap xtrans xtrap xvidtune xvinfo xwd xwininfo xwud '

#pkg names without version number...
PKGNAMESONLY="`grep '^X ' ${PROFILEPATH}/pkgsel | tr -s ' ' | cut -f 2 -d ' ' | tr '\n' ' '`"
#pkg names with version...
ALLPKGS="`ls -1 $EXE_TARGETDIR`"

echo -n "" > /tmp/t2failed2findpkg
echo -n "" > /tmp/t2multiplematch
echo -n "" > $TARGETPATH/puppy-unleashed/packages.txt

for PKGNAMEONLY in $PKGNAMESONLY
do
 [ "$PKGNAMEONLY" = "" ] && continue
 
 #some false ones...
 [ "$PKGNAMEONLY" = "glibc32" ] && continue
 [ "$PKGNAMEONLY" = "elftoaout" ] && continue
 [ "$PKGNAMEONLY" = "00-dirtree" ] && continue
 [ "$PKGNAMEONLY" = "sysfiles" ] && continue
 CPATTERN=" $PKGNAMEONLY "
 [ "`echo "${DEVXONLY}${KERNELONLY}" | grep "$CPATTERN"`" != "" ] && continue
 
 echo "Processing $PKGNAMEONLY"
 
 #find name with version number...
 APATTERN="^${PKGNAMEONLY}\\-"
 NEWPKGDIR="`echo "$ALLPKGS" | grep "$APATTERN"`"
 if [ "$NEWPKGDIR" = "" ];then
  echo "PKGNAMEONLY=$PKGNAMEONLY" >> /tmp/t2failed2findpkg
  continue
 fi
 if [ `echo "$NEWPKGDIR" | wc -l` -ne 1 ];then
  #maybe can narrow down selection...
  BPATTERN="^${PKGNAMEONLY}\\-[0-9]"
  NEWPKGDIR="`echo "$ALLPKGS" | grep "$BPATTERN"`"
  if [ `echo "$NEWPKGDIR" | wc -l` -ne 1 ];then
   echo  "PKGNAMEONLY=$PKGNAMEONLY" >> /tmp/t2multiplematch
   continue
  fi
 fi
 
 PKGSIZEK="`du -sk ${EXE_TARGETDIR}/${NEWPKGDIR} | cut -f 1`"
 PKGGROUP="RAW"
 [ "`echo "$XORGALL" | grep "$CPATTERN"`" != "" ] && PKGGROUP="XORG"

 PKGDEPENDENCIES=" `cat ${EXE_TARGETDIR}/${NEWPKGDIR}/var/adm/dependencies/${PKGNAMEONLY} | cut -f 2 -d ' ' | tr '\n' ' '`"
 PKGDESCS="`cat ${EXE_TARGETDIR}/${NEWPKGDIR}/var/adm/descs/${PKGNAMEONLY} | grep '^\[I\] ' | cut -f 2-11 -d ' ' | head -n 1 | tr '"' "'"`"
 
 #narrow down the dependencies to only those pkgs we have...
 echo -n "" > /tmp/pkgdependencies
 for xPKGNAMEONLY in $PKGNAMESONLY
 do
  #some false ones...
  [ "$xPKGNAMEONLY" = "glibc32" ] && continue
  [ "$xPKGNAMEONLY" = "elftoaout" ] && continue
  [ "$xPKGNAMEONLY" = "00-dirtree" ] && continue
  [ "$xPKGNAMEONLY" = "sysfiles" ] && continue
  CPATTERN=" ${xPKGNAMEONLY} "
  [ "`echo "${DEVXONLY}${KERNELONLY}" | grep "$CPATTERN"`" != "" ] && continue
  if [ "`echo "$PKGDEPENDENCIES" | grep "$CPATTERN"`" != "" ];then
   echo '+'"$xPKGNAMEONLY" >> /tmp/pkgdependencies
  fi
 done
 PKGDEPENDENCIES="`cat /tmp/pkgdependencies | tr '\n' ',' | sed -e 's/,$//'`"
 
 echo "\"${NEWPKGDIR}\" \"${NEWPKGDIR} (${PKGNAMEONLY}): ${PKGDESCS}\" on \"${PKGGROUP} ${PKGDEPENDENCIES} ${PKGSIZEK}K\" \\" >> $TARGETPATH/puppy-unleashed/packages.txt
 
done


