22#
33# Download the current Gentoo stage3
44#
5- # Copyright (C) 2014-2015 W. Trevor King <[email protected] >5+ # Copyright (C) 2014-2018 W. Trevor King <[email protected] >66#
77# Licensed under the Apache License, Version 2.0 (the "License");
88# you may not use this file except in compliance with the License.
1616# See the License for the specific language governing permissions and
1717# limitations under the License.
1818
19+ die ()
20+ {
21+ echo " $1 "
22+ exit 1
23+ }
24+
1925MIRROR=" ${MIRROR:- http:// distfiles.gentoo.org/ } "
20- STAGE3_ARCH=" ${STAGE3_ARCH:- amd64} "
26+ if test -n " ${STAGE3} "
27+ then
28+ if test -n " ${STAGE3_ARCH} "
29+ then
30+ die ' if you set STAGE3, you do not need to set STAGE3_ARCH'
31+ fi
32+ if test -n " ${DATE} "
33+ then
34+ die ' if you set STAGE3, you do not need to set DATE'
35+ fi
36+ STAGE3_ARCH=$( echo " ${STAGE3} " | sed -n ' s/stage3-\([^-]*\)-.*/\1/p' )
37+ if test -z " ${STAGE3_ARCH} "
38+ then
39+ die " could not calculate STAGE3_ARCH from ${STAGE3} "
40+ fi
41+ DATE=$( echo " ${STAGE3} " | sed -n " s/stage3-${STAGE3_ARCH} -\([0-9TZ]*\)[.]tar[.].*/\1/p" )
42+ if test -z " ${DATE} "
43+ then
44+ die " could not calculate DATE from ${STAGE3} "
45+ fi
46+ else
47+ STAGE3_ARCH=" ${STAGE3_ARCH:- amd64} "
48+ fi
2149
2250if test -z " ${BASE_ARCH} "
2351then
3866fi
3967
4068BASE_ARCH_URL=" ${BASE_ARCH_URL:- ${MIRROR} releases/ ${BASE_ARCH} / autobuilds/ } "
41- LATEST=$( wget -O - " ${BASE_ARCH_URL} latest-stage3.txt" )
42- DATE=$( echo " ${LATEST} " | sed -n " s|/stage3-${STAGE3_ARCH} -[0-9]*[.]tar[.]bz2.*||p" )
69+
70+ if test -z " ${STAGE3} "
71+ then
72+ LATEST=$( wget -O - " ${BASE_ARCH_URL} latest-stage3.txt" )
73+ if test -z " ${DATE} "
74+ then
75+ DATE=$( echo " ${LATEST} " | sed -n " s|/stage3-${STAGE3_ARCH} -[0-9TZ]*[.]tar.*||p" )
76+ if test -z " ${DATE} "
77+ then
78+ die " could not calculate DATE from ${BASE_ARCH_URL} latest-stage3.txt"
79+ fi
80+ fi
81+
82+ STAGE3=$( echo " ${LATEST} " | sed -n " s|${DATE} /\(stage3-${STAGE3_ARCH} -${DATE} [.]tar[.][^ ]*\) .*|\1|p" )
83+ if test -z " ${STAGE3} "
84+ then
85+ die " could not calculate STAGE3 from ${BASE_ARCH_URL} latest-stage3.txt"
86+ fi
87+ fi
88+
4389ARCH_URL=" ${ARCH_URL:- ${BASE_ARCH_URL}${DATE} / } "
44- STAGE3=" ${STAGE3:- stage3-${STAGE3_ARCH} -${DATE} .tar.bz2} "
4590STAGE3_CONTENTS=" ${STAGE3_CONTENTS:- ${STAGE3} .CONTENTS} "
4691STAGE3_DIGESTS=" ${STAGE3_DIGESTS:- ${STAGE3} .DIGESTS.asc} "
4792
48- die ()
49- {
50- echo " $1 "
51- exit 1
52- }
53-
93+ COMPRESSION=$( echo " ${STAGE3} " | sed -n ' s/^.*[.]\([^.]*\)$/\1/p' )
94+ if test -z " ${COMPRESSION} "
95+ then
96+ die " could not calculate COMPRESSION from ${STAGE3} "
97+ fi
5498for FILE in " ${STAGE3} " " ${STAGE3_CONTENTS} " " ${STAGE3_DIGESTS} " ; do
5599 if [ ! -f " downloads/${FILE} " ]; then
56100 wget -O " downloads/${FILE} " " ${ARCH_URL}${FILE} "
@@ -60,12 +104,15 @@ for FILE in "${STAGE3}" "${STAGE3_CONTENTS}" "${STAGE3_DIGESTS}"; do
60104 fi
61105 fi
62106
63- CURRENT=$( echo " ${FILE} " | sed " s/${DATE} /current/" )
107+ FILE_NOCOMPRESSION=$( echo " ${FILE} " | sed " s/[.]${COMPRESSION} //" )
108+ if [ " ${FILE_NOCOMPRESSION} " = " ${FILE} " ]; then
109+ die " unable to remove .${COMPRESSION} from ${FILE} "
110+ fi
111+ CURRENT=$( echo " ${FILE_NOCOMPRESSION} " | sed " s/${DATE} /current/" )
64112 (
65113 cd downloads &&
66114 rm -f " ${CURRENT} " &&
67115 ln -s " ${FILE} " " ${CURRENT} " ||
68116 die " failed to link ${CURRENT} -> ${FILE} "
69117 )
70118done
71-
0 commit comments