Magellan Linux

Annotation of /trunk/pkgtools/regen_mage_tree_rsync.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2015 - (hide annotations) (download) (as text)
Thu Jan 3 10:01:02 2013 UTC (11 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 3754 byte(s)
-serveral fixes
1 niro 610 #!/bin/bash
2    
3 niro 2015 minclude()
4     {
5 niro 610 echo "error: minclude found in ${PKGNAME}"
6     }
7    
8     export -f minclude
9    
10 niro 2015 MY_CVS_REPO="/var/www/htdocs/magellan/magellan-dev"
11 niro 610 MY_CVS_DEST="${MY_CVS_REPO}/rsync"
12     MY_CVS_MODULES="mage smage magellan-src/mage"
13     MY_CVS_OPTS=""
14 niro 2015 MY_CVS_ROOT=":pserver:anonymous:@cvs.magellan-linux.de:/magellan-cvs"
15 niro 610 MY_CVS_REMOVE_MAGE_SOURCES=true
16 niro 2015 MY_TARBALL_VERSION_TAG="$(date +%Y%m%d-%k%M | sed 's:\ :0:')"
17 niro 610
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 niro 2015 # 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 niro 610
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 niro 2015 sed -i -e "s:\(ARCH=\).*:\1${ARCH}:" -e "s:\(PKGDIR=\).*:\1${PKGDIR}:" ${MY_MAGE_RC}
105 niro 610
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 niro 2015 # 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 *