Magellan Linux

Annotation of /trunk/pkgtools/add2svn.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 821 - (hide annotations) (download) (as text)
Fri Apr 24 19:17:49 2009 UTC (15 years ago) by niro
File MIME type: application/x-sh
File size: 4845 byte(s)
-added svn related tools
1 niro 821 #!/bin/bash
2    
3     source /usr/lib/mage/mage4.functions.sh
4    
5     SMAGEFILE="$1"
6     if [[ -z ${SMAGEFILE} ]]
7     then
8     echo "No smagefile given."
9     exit 1
10     fi
11     [[ -n $2 ]] && [[ $2 != -st ]] && SVN_COMMIT="$2"
12     if [[ $3 = -st ]] || [[ $2 = -st ]]
13     then
14     echo "Using SRCTARBALL ..."
15     USE_SRCTARBALL=true
16     fi
17    
18     #CURARCH=i686
19     CURARCH=x86_64
20    
21     BUILDROOT=/mnt/BUILDROOT-${CURARCH}-svn
22    
23     SMAGEDIR=$(dirname ${SMAGEFILE})
24     MD5DIR=${SMAGEDIR}/md5
25     MD5NAME=$(basename $1 .smage2).md5
26     SMAGENAME=$(basename $1)
27     CURPNAME=$(magename2pname $1)
28     CURPVER=$(magename2pver $1)
29     CURPBUILD=$(magename2pbuild $(basename $1 .smage2))
30     PKGNAME=${CURPNAME}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk
31     SRCPKGNAME=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks
32     REPO="$(echo ${SMAGEFILE#*trunk/} | cut -d'/' -f1)"
33     SSHLOGIN="tjoke@magellan-linux.de:/var/www/htdocs/magellan/magellan-dev/svn/unstable/packages"
34     SRCTARBALL_URI="http://magellan-linux.de/magellan/magellan-dev/svn/unstable/packages/src"
35    
36     # abort if the package is already installed in BUILDROOT
37     get_value_from_file()
38     {
39     local var="$1"
40     local file="$2"
41     local value
42    
43     # source /etc/mage.rc to get the includes right
44     source /etc/mage.rc.global
45     source /etc/mage.rc
46    
47     # evaluate the value
48     source ${file} $> /dev/null
49     eval value=\$$(echo ${var})
50     echo "${value}"
51     }
52    
53     CURPCATEGORIE=$(get_value_from_file PCATEGORIE ${SMAGEFILE})
54     INSTALLDB_BUILDROOT=$(get_value_from_file INSTALLDB ${BUILDROOT}/etc/mage.rc)
55    
56     if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} ]]
57     then
58     echo "Package '${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD}' already installed in ${BUILDROOT}. Aborting!"
59     exit 1
60     fi
61    
62     # delete md5 if exist
63     [[ -f ${MD5DIR}/${MD5NAME} ]] && rm ${MD5DIR}/${MD5NAME}
64    
65     if [[ ${USE_SRCTARBALL} != true ]]
66     then
67     /sbin/smage2 download ${SMAGEFILE}
68     /sbin/smage2 calcmd5 ${SMAGEFILE} ${MD5DIR}
69     pushd ${SMAGEDIR}/../
70     svn add ${CURPNAME}
71     pushd ${SMAGEDIR}
72     svn add md5
73     svn add ${SMAGENAME} md5/${MD5NAME}
74    
75     [[ -z ${SVN_COMMIT} ]] && SVN_COMMIT="auto added: ver bump to ${CURPVER}-${CURPBUILD}"
76     svn commit -m "${SVN_COMMIT}" ${SMAGENAME} md5/${MD5NAME}
77     popd
78     fi
79    
80     sudo -s << EOF
81     :> ${BUILDROOT}/.installrc
82    
83     echo "export LC_ALL=C" >> ${BUILDROOT}/.installrc
84     echo "REPO=${REPO}" >> ${BUILDROOT}/.installrc
85     echo "CURPNAME=${CURPNAME}" >> ${BUILDROOT}/.installrc
86     echo "CURPVER=${CURPVER}" >> ${BUILDROOT}/.installrc
87     echo "CURPBUILD=${CURPBUILD}" >> ${BUILDROOT}/.installrc
88     echo "CURARCH=${CURARCH}" >> ${BUILDROOT}/.installrc
89     echo "SMAGENAME=${SMAGENAME}" >> ${BUILDROOT}/.installrc
90     echo "MD5NAME=${MD5NAME}" >> ${BUILDROOT}/.installrc
91     echo "PKGNAME=${PKGNAME}" >> ${BUILDROOT}/.installrc
92     echo "SPKGNAME=${SPKGNAME}" >> ${BUILDROOT}/.installrc
93     echo '/usr/bin/whoami' >> ${BUILDROOT}/.installrc
94     echo 'source /etc/profile' >> ${BUILDROOT}/.installrc
95     #echo 'echo PATH=\${PATH};read' >> ${BUILDROOT}/.installrc
96     echo 'cd /var/cache/mage/smage/trunk/${REPO}' >> ${BUILDROOT}/.installrc
97     echo 'svn update include' >> ${BUILDROOT}/.installrc
98     echo 'svn update ${CURPNAME}' >> ${BUILDROOT}/.installrc
99     echo 'USE_SRCTARBALL=${USE_SRCTARBALL}' >> ${BUILDROOT}/.installrc
100     echo 'if [[ \${USE_SRCTARBALL} != true ]];then ' >> ${BUILDROOT}/.installrc
101     echo '/sbin/smage2 /var/cache/mage/smage/trunk/${REPO}/${CURPNAME}/${SMAGENAME} || exit 1' >> ${BUILDROOT}/.installrc
102     echo 'else' >> ${BUILDROOT}/.installrc
103     echo 'echo "Fetching SRC_TARBALL"' >> ${BUILDROOT}/.installrc
104     echo 'pushd /var/tmp/magebuild > /dev/null' >> ${BUILDROOT}/.installrc
105     echo "SRCTARBALL=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks" >> ${BUILDROOT}/.installrc
106     echo "SRCTARBALL_URI=${SRCTARBALL_URI}" >> ${BUILDROOT}/.installrc
107     echo '/usr/bin/wget -c \${SRCTARBALL_URI}/\${SRCTARBALL}' >> ${BUILDROOT}/.installrc
108     echo '/sbin/smage2 -st \${SRCTARBALL}' >> ${BUILDROOT}/.installrc
109     echo '[[ -f \${SRCTARBALL} ]] && rm \${SRCTARBALL}' >> ${BUILDROOT}/.installrc
110     echo 'popd > /dev/null' >> ${BUILDROOT}/.installrc
111     echo 'fi' >> ${BUILDROOT}/.installrc
112     echo '/sbin/mage install ${CURPNAME} || exit 1' >> ${BUILDROOT}/.installrc
113     echo 'mv /var/cache/mage/packages/${PKGNAME} /BUILDED' >> ${BUILDROOT}/.installrc
114     echo 'mv /var/cache/mage/packages/sources/${SRCPKGNAME} /BUILDED/sources' >> ${BUILDROOT}/.installrc
115     echo 'rm -rf /var/cache/mage/sources/${CURPNAME}' >> ${BUILDROOT}/.installrc
116     EOF
117    
118     sudo -H /sbin/chroot ${BUILDROOT} /bin/bash /.installrc
119     sudo rm ${BUILDROOT}/.installrc
120    
121     if [[ -f ${BUILDROOT}/BUILDED/${PKGNAME} ]]
122     then
123     scp ${BUILDROOT}/BUILDED/${PKGNAME} ${SSHLOGIN}/${CURARCH}/
124     else
125     echo "Error: ${BUILDROOT}/BUILDED/${PKGNAME} missing!"
126     exit 1
127     fi
128    
129     if [[ -f ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ]]
130     then
131     scp ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ${SSHLOGIN}/src/
132     else
133     echo "Error: ${BUILDROOT}/BUILDED/${SRCPKGNAME} missing!"
134     exit 1
135     fi
136    
137     [[ -d /var/cache/mage/sources/${CURPNAME} ]] && rm -rf /var/cache/mage/sources/${CURPNAME}
138    
139    

Properties

Name Value
svn:executable *
svn:keywords Id