File: list_latest_tarball

package info (click to toggle)
drbl 5.7.11-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 6,984 kB
  • sloc: sh: 43,522; perl: 8,820; xml: 867; makefile: 131
file content (96 lines) | stat: -rwxr-xr-x 3,267 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/bash
# The script is borrowed from 
#============================================================================
# http://staff.washington.edu/corey/tools.html
# Author: Corey Satten, corey @ cac.washington.edu, 06/26/03, release 1.8
#============================================================================
# Modified by Steven Shiau <steven _at_ clonezilla org> Sep/03/07
# We use this one to find the last version tar.bz2 in the repository.
# Because we might have a lot of tar.bz2...
# clonezilla-2.1.8-1.tar.bz2
# clonezilla-2.1.8-2.tar.bz2
# clonezilla-2.1.8-3.tar.bz2
# clonezilla-2.1.9-1.tar.bz2
# clonezilla-2.1.9-2.tar.bz2
# clonezilla-2.2.0-1.tar.bz2
# clonezilla-2.2.0-2.tar.bz2
# clonezilla-2.2.0-3.tar.bz2
# clonezilla-2.2.0-4.tar.bz2
# we just want to list the last one clonezilla-2.2.0-4.tar.bz2
#============================================================================
# "$GREP_NEWER" is in drbl-functions

# Load DRBL setting and functions
DRBL_SCRIPT_PATH="${DRBL_SCRIPT_PATH:-/usr/share/drbl}"

. $DRBL_SCRIPT_PATH/sbin/drbl-conf-functions

# Default settings
suf_default="gz"
#
USAGE () {
  echo "Usage: `basename $0` [path]"
  echo "Example:"
  echo "`basename $0` /mirror/src/stable/"
  echo "`basename $0` http://free.nchc.org.tw/drbl-core/src/stable/"
}

# Try to help people figure out if/when this file has DOS line terminators
# Chances are the initial #!/bin/sh will fail with a cryptic "not found" msg
# If someone tries to debug it by feeding it to sh manually, this should help:
NL=
case "$NL" in '');; *)                                                    #
    echo "ERROR: $0 was improperly saved with CR-LF newlines." 1>&2       #
    echo "Please try again after restoring Unix-style (LF) newlines" 1>&2 #
    exit 1 ;;                                                             #
esac                                                                      #

#
while [ $# -gt 0 ]; do
 case "$1" in
   -f|--comp-format) 
           shift; 
           if [ -z "$(echo $1 |grep ^-.)" ]; then
             # skip the -xx option, in case 
             suf="$1"
             shift;
           fi
           [ -z "$ocsroot" ] && USAGE && exit 1
           ;;
   -*)     echo "${0}: ${1}: invalid option" >&2
           USAGE >& 2
           exit 2 ;;
   *)      break ;;
 esac
done

SRC=$1
[ -z "$SRC" ] && echo "You must provide the URL or PATH!" && USAGE && exit 1

case "$SRC" in */);; *) SRC=$SRC/;; esac	# URL must end in slash

#
[ -z "$suf" ] && suf="$suf_default"

#-------------------------------------------------------------------------------
list_available_tarball -f $suf $SRC |
#-------------------------------------------------------------------------------
#
# Find all installed packages with patches
#
(
  case "${EFLAG}${OFLAG}${UFLAG}" in
    '') 
        # Note! Here we'd better ot use gawk, not awk (mawk which exists in Debian)
        gawk "$GREP_NEWER"'	# omit all but newest of multiple available patches
  		{ L0=R0; L1=R1; L2=R2
		  R0=$0
		  R1=$0; sub(/\.[^.]+.${suf}$/,"",R1) 	# pkg name+version
		  R2=$0; sub(/-[^-]+$/, "",R2) 	# pkg name-version
		  if ((R2 == L2) && newer(R1, L1)) {R0=L0; R1=L1}
		  if ((R2 != L2) && L0) {print L0}
		}
	END	{ print R0 }';;
     *) cat -;;
  esac
)