update buildroot - work in progress development
[cmdllinux.git] / buildroot / _pkg_tmp / _#remove4.sh
blob27a981ad558a416fecde37b939b4df51e911c96e
1 #set +e
4 #rem="eudev"
5 rem="zlib eudev"
6 #[ -z "$1" ] && exit 1
7 #rem="$@"
9 #check if package exists
10 cd .local
11 echo -n > ../.rem_cache.tmp1
12 echo -n > ../.rem_cache.tmp2
13 echo -n > ../.rem_cache.tmp1.sort
14 echo -n > ../.rem_cache.tmp2.sort
15 #echo "Getting dependencies..."
16 while true; do
17 if test -s ../.rem_cache.tmp1.sort; then
18 cp ../.rem_cache.tmp1.sort ../.rem_cache.tmp1
19 for i in `cut -d / -f 1 ../.rem_cache.tmp1.sort | sort -u`; do
20 ls -d */.depends/$i >> ../.rem_cache.tmp1 2> /dev/null
21 done
22 sort -u ../.rem_cache.tmp1 > ../.rem_cache.tmp1.sort
23 else
24 for i in $rem; do
25 ls -d */.depends/$i >> ../.rem_cache.tmp1 2> /dev/null
26 done
27 if ! test -s ../.rem_cache.tmp1; then
28 no_deps_to_remove=1
29 break
31 sort -u ../.rem_cache.tmp1 > ../.rem_cache.tmp1.sort
33 if cmp ../.rem_cache.tmp1.sort ../.rem_cache.tmp2.sort > /dev/null 2>&1; then
34 break
35 else
36 cp ../.rem_cache.tmp1.sort ../.rem_cache.tmp2.sort
38 done
39 ###remove collected
40 ###remove selected
41 cd ..
42 #exit 0
44 OPKG=
45 DEPP=
46 while read line; do
47 PKG=${line%%/*}
48 DEP=${line##*/}
49 if [[ "$OPKG" != "$PKG" ]]; then
50 if [[ -z "$OPKG" ]]; then
51 DEPP="$DEP"
52 else
53 echo "$OPKG/.depends/$DEPP"
54 DEPP="$DEP"
56 OPKG="$PKG"
57 else
58 [[ -z "$DEPP" ]] && DEPP="$DEP" || DEPP="$DEPP $DEP"
60 done < .rem_cache.tmp1.sort > .rem_cache.tmp1.sort4
61 [[ ! -z "$PKG" ]] && echo "$PKG/.depends/$DEPP" >> .rem_cache.tmp1.sort4
64 cut -d / -f 1 .rem_cache.tmp1.sort | sort -u > .rem_cache.tmp1.sort1
65 cut -d / -f 3 .rem_cache.tmp1.sort | sort -u > .rem_cache.tmp1.sort2
66 cat .rem_cache.tmp1.sort1 .rem_cache.tmp1.sort2 | sort -u > .rem_cache.tmp1.sort3
67 DIFF=`comm -13 --nocheck-order .rem_cache.tmp1.sort1 .rem_cache.tmp1.sort3`
68 for i in $DIFF; do
69 echo "$i/.depends/" >> .rem_cache.tmp1.sort4
70 done
73 num=0
74 declare -g -a list
75 while read line; do
76 list[$num]="$line"
77 let num++
78 done < .rem_cache.tmp1.sort4
80 processed=
81 orig_maxindex=$(( ${#list[@]} - 1 ))
82 num=0
83 while (( ${#list[@]} != 0 )); do
85 if [[ -z "${list[$num]}" ]]; then
86 [[ "$num" -lt "$orig_maxindex" ]] && num=$(( "$num" + 1 )) || num=0
87 continue
89 name="${list[$num]%%/*}"
90 depends="${list[$num]##*/}"
91 deperror=
92 for i in $depends; do
93 [[ "$name" == "$i" ]] && echo "$i----$i----$i"
94 if ! echo "$processed" | grep -q "^$i$"; then
95 deperror=1
96 break
98 done
99 if [[ -z "$deperror" ]]; then
100 [[ -z "$processed" ]] && processed="$name" || processed=`echo -ne "$processed\n$name"`
101 unset list[$num]
104 [[ "$num" -lt "$orig_maxindex" ]] && num=$(( $num + 1 )) || num=0
105 done
107 reverse=`echo "$processed" | tac`
109 echo "$reverse"
110 #exit 0