Magellan Linux

Contents of /trunk/pkgtools/regen_mage_tree_rsync.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2015 - (show annotations) (download) (as text)
Thu Jan 3 10:01:02 2013 UTC (11 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 3754 byte(s)
-serveral fixes
1 #!/bin/bash
2
3 minclude()
4 {
5 echo "error: minclude found in ${PKGNAME}"
6 }
7
8 export -f minclude
9
10 MY_CVS_REPO="/var/www/htdocs/magellan/magellan-dev"
11 MY_CVS_DEST="${MY_CVS_REPO}/rsync"
12 MY_CVS_MODULES="mage smage magellan-src/mage"
13 MY_CVS_OPTS=""
14 MY_CVS_ROOT=":pserver:anonymous:@cvs.magellan-linux.de:/magellan-cvs"
15 MY_CVS_REMOVE_MAGE_SOURCES=true
16 MY_TARBALL_VERSION_TAG="$(date +%Y%m%d-%k%M | sed 's:\ :0:')"
17
18 MY_CVS_ARCHES="i686 x86_64"
19 MY_CVS_DISTRIBUTIONS="stable testing unstable"
20
21 # like mage.rc; needed only for smage2
22 export ARCH=i686
23 export PKGDIR="${MY_CVS_REPO}/unstable/packages/${ARCH}"
24 export SMAGESCRIPTSDIR="${MY_CVS_DEST}/smage"
25 export MAGE_TREE_DEST="${MY_CVS_DEST}/mage"
26 export REGEN_MAGE_TREE=true
27
28 # setup a fake mage rc
29 MY_MAGE_RC=$(mktemp)
30 echo "ARCH=${ARCH}" > ${MY_MAGE_RC}
31 echo "PKGDIR=${PKGDIR}" >> ${MY_MAGE_RC}
32 echo "SMAGESCRIPTSDIR=${SMAGESCRIPTSDIR}" >> ${MY_MAGE_RC}
33 echo "MAGE_TREE_DEST=${MAGE_TREE_DEST}" >> ${MY_MAGE_RC}
34 echo "REGEN_MAGE_TREE=${REGEN_MAGE_TREE}" >> ${MY_MAGE_RC}
35 export MAGERC=${MY_MAGE_RC}
36
37 # cvs login
38 export CVSROOT="${MY_CVS_ROOT}"
39 cvs login
40
41 [ ! -d "${MY_CVS_DEST}" ] && install -d ${MY_CVS_DEST}
42
43 # get rid of old cruft (fixes some rsync issues)
44 rm -rf ${MY_CVS_DEST}/*
45
46 # get all our modules or update them
47 for module in ${MY_CVS_MODULES}
48 do
49 if [ ! -d ${MY_CVS_DEST}/${module}/CVS ]
50 then
51 (cd ${MY_CVS_DEST}; cvs -z3 checkout -P ${MY_CVS_OPTS} ${module})
52 else
53 (cd ${MY_CVS_DEST}; cvs -z3 update -d -P ${MY_CVS_OPTS} ${module})
54 # needed to fetch new directories --^
55 # needed to kill old directories ------^
56 fi
57 done
58
59 # delete CVS directories
60 # i don't get the problem why this not work
61 #find ${MY_CVS_DEST} -name CVS -type d -exec rm -rf '{}' ';'
62 # so i use this now:
63 for file in $(find ${MY_CVS_DEST} -type d -name CVS)
64 do
65 rm -rf ${file}
66 done
67
68 #correct permissions
69 find ${MY_CVS_DEST} -type f -exec chmod 0644 '{}' ';'
70 find ${MY_CVS_DEST} -type d -exec chmod 0755 '{}' ';'
71
72 # now regen mage tree
73
74 if [ -f ${MY_CVS_DEST}/smage/.regenignore ]
75 then
76 export EXCLUDED="$(< ${MY_CVS_DEST}/smage/.regenignore )"
77 fi
78
79 if [[ -n ${EXCLUDED} ]]
80 then
81 for i in ${EXCLUDED}
82 do
83 if [ -e "${MY_CVS_DEST}/smage/${i}" ]
84 then
85 rm -rf "${MY_CVS_DEST}/smage/${i}"
86 fi
87 done
88 fi
89
90 # exec permissions
91 chmod a+x ${MY_CVS_DEST}/magellan-src/mage/usr/lib/mage/smage2.sh
92
93 # shut up some warnings
94 [ ! -f /etc/mage.rc ] && touch /etc/mage.rc
95 [ ! -f /usr/lib/mage/version ] && { install -d /usr/lib/mage; touch /usr/lib/mage/version; }
96
97 for dist in ${MY_CVS_DISTRIBUTIONS}
98 do
99 for arch in ${MY_CVS_ARCHES}
100 do
101 export ARCH="${arch}"
102 #export PKGDIR="$(dirname ${PKGDIR})/${ARCH}"
103 export PKGDIR="${MY_CVS_REPO}/${dist}/packages/${ARCH}"
104 sed -i -e "s:\(ARCH=\).*:\1${ARCH}:" -e "s:\(PKGDIR=\).*:\1${PKGDIR}:" ${MY_MAGE_RC}
105
106 for i in $(find ${MY_CVS_DEST}/smage -type f -name "*.smage2" | sort)
107 do
108 ${MY_CVS_DEST}/magellan-src/mage/usr/lib/mage/smage2.sh only-regen-tree "${i}"
109 done
110 done
111 done
112
113
114 # create tarballs
115 pushd ${MY_CVS_DEST}
116 for module in ${MY_CVS_MODULES}
117 do
118 tar cvjf ${module}-"${MY_TARBALL_VERSION_TAG}".tar.bz2 ./${module}
119 done
120 popd
121
122 # remove mage sources
123 if [[ ${MY_CVS_REMOVE_MAGE_SOURCES} = true ]]
124 then
125 [ -d ${MY_CVS_DEST}/magellan-src ] && rm -rf ${MY_CVS_DEST}/magellan-src
126 [ -d ${MY_CVS_DEST}/magellan-src-"${MY_TARBALL_VERSION_TAG}".tar.bz2 ] &&
127 rm -rf ${MY_CVS_DEST}/magellan-src-"${MY_TARBALL_VERSION_TAG}".tar.bz2
128 fi
129
130
131 # move tarballs to a proper location
132 install -d ${MY_CVS_DEST}/tarballs
133 for module in ${MY_CVS_MODULES}
134 do
135 [ -f ${MY_CVS_DEST}/${module}-"${MY_TARBALL_VERSION_TAG}".tar.bz2 ] &&
136 mv ${MY_CVS_DEST}/${module}-"${MY_TARBALL_VERSION_TAG}".tar.bz2 ${MY_CVS_DEST}/tarballs
137 done
138
139 # delete fake mage.rc
140 if [[ -f ${MY_MAGE_RC} ]]
141 then
142 rm -f ${MY_MAGE_RC}
143 fi
144

Properties

Name Value
svn:executable *