Annotation of /trunk/mage/usr/lib/mage/generate_meta_data.sh
Parent Directory | Revision Log
Revision 2365 -
(hide annotations)
(download)
(as text)
Mon Jan 6 12:56:50 2014 UTC (10 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 3694 byte(s)
Mon Jan 6 12:56:50 2014 UTC (10 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 3694 byte(s)
-drop obsolete MAGE_TARGETS support
1 | niro | 489 | #!/bin/bash |
2 | # generate metadata files for packages - called after smage2 has done packaging | ||
3 | |||
4 | niro | 1642 | : ${MAGERC="/etc/mage.rc"} |
5 | |||
6 | niro | 489 | source /etc/mage.rc.global |
7 | niro | 1642 | source ${MAGERC} |
8 | source ${MLIBDIR}/mage4.functions.sh | ||
9 | source ${MLIBDIR}/smage2.functions.sh | ||
10 | niro | 489 | |
11 | die() | ||
12 | { | ||
13 | echo -e "Exited ${BASH_SOURCE} at line no ${BASH_LINENO}." | ||
14 | echo -e "$@" | ||
15 | exit 1 | ||
16 | } | ||
17 | |||
18 | SMAGEFILE="$1" | ||
19 | METADIR=/var/cache/mage/meta | ||
20 | |||
21 | niro | 1642 | smagesource ${SMAGEFILE} |
22 | niro | 489 | |
23 | DEST="${METADIR}/${PNAME}/${PNAME}-${PVER}-${PBUILD}" | ||
24 | |||
25 | install -d ${DEST} || die | ||
26 | install -d ${DEST}/${ARCH} || die | ||
27 | |||
28 | # basic meta data | ||
29 | echo "${PNAME}" > ${DEST}/meta | ||
30 | niro | 1642 | echo "${PCAT}" >> ${DEST}/meta |
31 | niro | 489 | echo "${PVER}" >> ${DEST}/meta |
32 | echo "${PBUILD/r/}" >> ${DEST}/meta | ||
33 | echo "${STATE}" >> ${DEST}/meta | ||
34 | echo "${DESCRIPTION}" >> ${DEST}/meta | ||
35 | echo "${HOMEPAGE}" >> ${DEST}/meta | ||
36 | echo "${PKGTYPE}" >> ${DEST}/meta | ||
37 | echo "${INHERITS}" >> ${DEST}/meta | ||
38 | |||
39 | # arch specific meta data | ||
40 | [[ -f ${PKGDIR}/${PNAME}-${PVER}-${ARCH}-${PBUILD}.${PKGSUFFIX} ]] && | ||
41 | MD5=$(md5sum ${PKGDIR}/${PNAME}-${PVER}-${ARCH}-${PBUILD}.${PKGSUFFIX} | cut -d' ' -f1) | ||
42 | [[ -e ${BUILDDIR}/builded ]] && | ||
43 | SIZE="$(du -hDs ${BUILDDIR}/builded | cut -d $'\t' -f1)" | ||
44 | [[ -f ${BUILDDIR}/${PNAME}-${PVER}-${ARCH}-${PBUILD}/.mtime ]] && | ||
45 | MTIME="$(< ${BUILDDIR}/${PNAME}-${PVER}-${ARCH}-${PBUILD}/.mtime)" | ||
46 | echo "${MD5}" > ${DEST}/${ARCH}/desc | ||
47 | echo "${SIZE}" >> ${DEST}/${ARCH}/desc | ||
48 | echo "${MTIME}" >> ${DEST}/${ARCH}/desc | ||
49 | |||
50 | # depends | ||
51 | echo "${DEPEND}" > ${DEST}/${ARCH}/depend | ||
52 | |||
53 | # sdepends | ||
54 | echo "${SDEPEND}" > ${DEST}/${ARCH}/sdepend | ||
55 | |||
56 | # provides | ||
57 | echo "${PROVIDES}" > ${DEST}/${ARCH}/provides | ||
58 | |||
59 | # content | ||
60 | # char | ||
61 | # dirs | ||
62 | # files | ||
63 | # pipes | ||
64 | # symlinks | ||
65 | for i in char dirs files pipes symlinks | ||
66 | do | ||
67 | SRC="${BUILDDIR}/${PNAME}-${PVER}-${ARCH}-${PBUILD}/.${i}" | ||
68 | [[ -f ${SRC} ]] && cat ${SRC} | bzip2 -9 > ${DEST}/${ARCH}/${i}.bz2 | ||
69 | done | ||
70 | |||
71 | # preinstall etc | ||
72 | # routines.sh | ||
73 | |||
74 | do_preinst=0 | ||
75 | do_postinst=0 | ||
76 | do_prerm=0 | ||
77 | do_postrm=0 | ||
78 | do_script=0 | ||
79 | |||
80 | [[ -n $(typeset -f preinstall) ]] && touch ${DEST}/preinstall && do_preinst=1 && do_script=1 | ||
81 | [[ -n $(typeset -f postinstall) ]] && touch ${DEST}/postinstall && do_postinst=1 && do_script=1 | ||
82 | [[ -n $(typeset -f preremove) ]] && touch ${DEST}/preremove && do_prerm=1 && do_script=1 | ||
83 | [[ -n $(typeset -f postremove) ]] && touch ${DEST}/postremove && do_postrm=1 && do_script=1 | ||
84 | |||
85 | # create it only if do_script=1 | ||
86 | if [[ ${do_script} = 1 ]] | ||
87 | then | ||
88 | # create a routines script | ||
89 | routines="${DEST}/routines.sh" | ||
90 | |||
91 | echo "#!/bin/sh" > ${routines} | ||
92 | echo "# routines.sh script for ${PNAME}-${PVER}-${PBUILD}" >> ${routines} | ||
93 | echo >> ${routines} | ||
94 | |||
95 | # special functions and variables | ||
96 | if [[ -n ${SPECIAL_VARS} ]] | ||
97 | then | ||
98 | for i in ${SPECIAL_VARS} | ||
99 | do | ||
100 | # being tricky here :) | ||
101 | echo "${i}=\"$(eval echo \$${i})\"" >> ${routines} | ||
102 | done | ||
103 | echo >> ${routines} | ||
104 | fi | ||
105 | |||
106 | # add special functions | ||
107 | if [[ -n ${SPECIAL_FUNCTIONS} ]] | ||
108 | then | ||
109 | for i in ${SPECIAL_FUNCTIONS} | ||
110 | do | ||
111 | # add to mage (quotes needed !) | ||
112 | typeset -f "${i}" >> ${routines} | ||
113 | echo >> ${routines} | ||
114 | # unset to be safe (quotes needed !) | ||
115 | unset "${i}" | ||
116 | done | ||
117 | echo >> ${routines} | ||
118 | fi | ||
119 | |||
120 | # postinstall and co | ||
121 | for i in preinstall postinstall preremove postremove | ||
122 | do | ||
123 | if [[ -n $(typeset -f "${i}") ]] | ||
124 | then | ||
125 | typeset -f "${i}" >> ${routines} | ||
126 | echo >> ${routines} | ||
127 | fi | ||
128 | done | ||
129 | |||
130 | # create start logic | ||
131 | echo >> ${routines} | ||
132 | echo 'case $1 in' >> ${routines} | ||
133 | [[ ${do_preinst} = 1 ]] && echo ' preinstall) preinstall ;;' >> ${routines} | ||
134 | [[ ${do_postinst} = 1 ]] && echo ' postinstall) postinstall ;;' >> ${routines} | ||
135 | [[ ${do_prerm} = 1 ]] && echo ' preremove) preremove ;;' >> ${routines} | ||
136 | [[ ${do_postrm} = 1 ]] && echo ' postremove) postremove ;;' >> ${routines} | ||
137 | echo ' *) echo "error unkown option \"$1\" ..." ;;' >> ${routines} | ||
138 | echo 'esac' >> ${routines} | ||
139 | echo >> ${routines} | ||
140 | fi |
Properties
Name | Value |
---|---|
svn:executable | * |