update instpkg todo list
[cmdllinux.git] / searchfs / _findarchive.sh
bloba3274a043ad156bec0ce27c179a4c994ee1aa2f0
1 ##${var} review check
3 exts=".tar.gz .tar.bz2 .tar.xz .tar.lz .tgz .zip"
4 echo -n > /tmp/file2
6 echoext()
8 for z in $exts; do
9 echo -n "-name *$z -o "
10 done | sed 's/[[:space:]]\+-o[[:space:]]\+$//'
13 set -f
14 PARM=`echoext`
16 find -mindepth 1 -type f \( $PARM \) -printf "%P\n" | sort -V | tee /tmp/file1 | \
17 while read line; do
19 if [ "$line" != "${line/\//}" ]; then
20 ARCHIVE=${line##*/}
21 DIR=${line%/*}
22 else
23 ARCHIVE=${line}
24 DIR=
27 [ $ARCHIVE != ${ARCHIVE%.tar.gz} ] && EXT=".tar.gz"
28 [ $ARCHIVE != ${ARCHIVE%.tar.bz2} ] && EXT=".tar.bz2"
29 [ $ARCHIVE != ${ARCHIVE%.tar.xz} ] && EXT=".tar.xz"
30 [ $ARCHIVE != ${ARCHIVE%.tar.lz} ] && EXT=".tar.lz"
31 [ $ARCHIVE != ${ARCHIVE%.tgz} ] && EXT=".tgz"
32 [ $ARCHIVE != ${ARCHIVE%.zip} ] && EXT=".zip"
33 WO_EXT=${ARCHIVE%$EXT}
36 if echo $WO_EXT | grep -q "-"; then
38 if [ "${WO_EXT}" != "${WO_EXT%-rc*}" ]; then
39 WO_RC=${WO_EXT%-rc*}
40 RC=${WO_EXT#$WO_RC}
41 NAME=${WO_RC%-*}
42 VER=${WO_RC#${NAME}-}
43 else
44 NAME=${WO_EXT%-*}
45 VER=${WO_EXT#${NAME}-}
46 [ "$VER" = "master" ] && VER=0
49 else
50 NAME=$WO_EXT
51 VER=0
54 if [ "$VER" != 0 ]; then
55 if [ -z "$DIR" ]; then
56 echo "$NAME $VER $EXT" >> /tmp/file2
57 else
58 echo "$NAME $VER $EXT $DIR" >> /tmp/file2
61 done
63 sort -V -k 2 -r /tmp/file2 > /tmp/file3
64 #sort -V -k 2,2 -r /tmp/file2 > /tmp/file3
66 DONEPKGS=
67 cat /tmp/file3 | \
68 while read NAME VER EXT DIR; do
69 if ! echo "$DONEPKGS" | grep -q "^$NAME$"; then
70 if [ -z "$DIR" ]; then
71 echo "$NAME $VER $EXT"
72 else
73 echo "$NAME $VER $EXT $DIR"
75 [ -z "$DONEPKGS" ] && DONEPKGS="$NAME" || DONEPKGS=`echo -ne "$DONEPKGS\n$NAME"`
77 done | sort -V