fix: _brightness.sh - find brighness files with '*video*' path (multiple files)
[cmdllinux.git] / buildroot / _pkg / _instpkg / managepkg / update_pkgdb_
blobba0ae8eb3eba71e18019e4195b13f27bca19d262
1 #! /bin/sh
3 #2011 Raminos production (raminux.sf.net)
5 #group_expr [a-z0-9]\+
6 ############replace next line with [a-zA-Z0-9+._-]\+?
7 #pkgname_expr [a-zA-Z0-9_-+.]\+ (+version dependency string: "<>=")
9 tempdir=`mktemp -d 2> /dev/null` || tempdir=/tmp/tmpdir$$
10 tempdir2=`mktemp -d 2> /dev/null` || tempdir2=/tmp/tmpdir2$$
11 trap "rm -rf $tempdir $tempdir2" 0 1 2 5 15
13 [ "$1" = "local" ] && DATABASE=/var/lib/instpkg/packages.local.data || \
14 DATABASE=/var/lib/instpkg/packages.data
16 [ ! -d /var/lib/instpkg ] && mkdir -p /var/lib/instpkg
18 [ ! -d $tempdir ] && mkdir -p $tempdir
19 [ ! -d $tempdir2 ] && mkdir -p $tempdir2
22 [ "$1" = "local" ] && cp -R /var/lib/pacman/local/* $tempdir || \
23 tar xzf /var/lib/pacman/sync/core.db -C $tempdir
25 cd $tempdir
27 cat */desc > $tempdir2/pkgdata
29 #make packageinfo database
30 grep -A 2 "%GROUPS%" $tempdir2/pkgdata | grep -v "%GROUPS%\|^--$" | tr "\n" " " | \
31 sed "s/[a-z0-9]\+ [a-z0-9]\+ /&#/g" | tr "#" "\n" | sed 's/ $//' > $tempdir2/groups
32 grep -A 1 "%NAME%" $tempdir2/pkgdata | grep -v "%NAME%\|^--$" > $tempdir2/names
33 grep -A 1 "%VERSION%" $tempdir2/pkgdata | grep -v "%VERSION%\|^--$" > $tempdir2/versions
34 [ "$1" = "local" ] && grep -A 1 "%SIZE%" $tempdir2/pkgdata | grep -v "%SIZE%\|^--$" > $tempdir2/sizes || \
35 grep -A 1 "%ISIZE%" $tempdir2/pkgdata | grep -v "%ISIZE%\|^--$" > $tempdir2/sizes
36 grep -A 1 "%DESC%" $tempdir2/pkgdata | grep -v "%DESC%\|^--$" > $tempdir2/descriptions
38 NUMPKG=`wc -l $tempdir2/names | cut -d " " -f 1`
39 if [ $NUMPKG != `wc -l $tempdir2/descriptions | cut -d " " -f 1` ]; then
40 for i in */desc; do grep -q "%DESC%" $i || echo -e "%DESC%\nnone\n\n" >> $i; done
41 cat */desc > $tempdir2/pkgdata
42 grep -A 1 "%DESC%" $tempdir2/pkgdata | grep -v "%DESC%\|^--$" > $tempdir2/descriptions
44 if [ $NUMPKG != `wc -l $tempdir2/groups | cut -d " " -f 1` ]; then
45 for i in */desc; do grep -q "%GROUPS%" $i || echo -e "%GROUPS%\nbase\nnotset\n\n" >> $i; done
46 cat */desc > $tempdir2/pkgdata
47 grep -A 2 "%GROUPS%" $tempdir2/pkgdata | grep -v "%GROUPS%\|^--$" | tr "\n" " " | \
48 sed "s/[a-z0-9]\+ [a-z0-9]\+ /&#/g" | tr "#" "\n" | sed 's/ $//' > $tempdir2/groups
51 paste -d ' ' $tempdir2/groups $tempdir2/names $tempdir2/versions $tempdir2/sizes $tempdir2/descriptions | sort > $DATABASE
54 #make dependency database
55 [ "$1" = "local" ] || cat */depends > $tempdir2/pkgdata
57 sed 's/%DEPENDS%/#DEPENDS#/g' $tempdir2/pkgdata | tr '\n' ' ' | sed -e 's/#DEPENDS#\( [a-zA-Z0-9_-+.<>=]\+\)\+/&#EDEPENDS#/g' \
58 -e 's/#EDEPENDS#[^#]\+#DEPENDS#/#EDEPENDS##DEPENDS#/g' -e 's/^[^#]\+#DEPENDS#/#DEPENDS#/' \
59 -e 's/#EDEPENDS#[^#]\+$/#EDEPENDS#/' -e 's/#EDEPENDS#/\n/g' > $tempdir2/depends
61 if [ $NUMPKG != `wc -l $tempdir2/depends | cut -d " " -f 1` ]; then
62 [ "$1" = "local" ] && for i in */desc; do grep -q "%DEPENDS%" $i || echo -e "%DEPENDS%\nglibc\n\n" >> $i; done || \
63 for i in */depends; do grep -q "%DEPENDS%" $i || echo -e "%DEPENDS%\nglibc\n\n" >> $i; done
64 [ "$1" = "local" ] && cat */desc > $tempdir2/pkgdata || cat */depends > $tempdir2/pkgdata
65 sed 's/%DEPENDS%/#DEPENDS#/g' $tempdir2/pkgdata | tr '\n' ' ' | sed -e 's/#DEPENDS#\( [a-zA-Z0-9_-+.<>=]\+\)\+/&#EDEPENDS#/g' \
66 -e 's/#EDEPENDS#[^#]\+#DEPENDS#/#EDEPENDS##DEPENDS#/g' -e 's/^[^#]\+#DEPENDS#/#DEPENDS#/' \
67 -e 's/#EDEPENDS#[^#]\+$/#EDEPENDS#/' -e 's/#EDEPENDS#/\n/g' > $tempdir2/depends
70 #remove version dependency & put space to EOL
71 sed -i -e 's/.*/& /' -e 's/[<>=][=.0-9]\+ / /g' $tempdir2/depends
73 [ "$1" = "local" ] && paste -d ' ' $tempdir2/names $tempdir2/depends > /var/lib/instpkg/depends.local.data || \
74 paste -d ' ' $tempdir2/names $tempdir2/depends > /var/lib/instpkg/depends.data
76 [ "$1" = "local" ] && ls /var/lib/pacman/local > /var/lib/instpkg/locallist.data