--- trunk/mage/usr/lib/mage/pkgbuild_dir.sh 2011/05/27 12:54:34 1291 +++ trunk/mage/usr/lib/mage/pkgbuild_dir.sh 2011/05/27 12:55:43 1292 @@ -74,88 +74,101 @@ build_postinstall() { + local m_mtime + local m_md5sum + local filelist + local item + local check_srcdir + local filetype + local fileposix + local fileowner + local filegroup + local lnkdest + local filedir + local char_major + local char_minor + echo -e "${COLBLUE}===${COLGREEN} fetching files for package '${PKGNAME}' ...${COLDEFAULT}" - # md5sums will only be generated for files: $M_MD5SUM + # md5sums will only be generated for files: $m_md5sum - # sets mtime to same value of the $BINDIR: $M_MTIME + # sets mtime to same value of the $BINDIR: $m_mtime # only needed for files and symlinks - M_MTIME=$(stat -c %Y ${BINDIR}) + m_mtime=$(stat -c %Y ${BINDIR}) # install mtime to package (needed for later checks) - echo "${M_MTIME}" > ${BUILDDIR}/${PKGNAME}/.mtime + echo "${m_mtime}" > ${BUILDDIR}/${PKGNAME}/.mtime # !! we use § as field seperator !! # doing so prevent us to get errors by filenames with spaces - BUILD_TODELFILES=$(find ${SEARCHDIRS} -printf %p§) + filelist=$(find ${SEARCHDIRS} -printf %p§) # sets fieldseperator to "§" instead of " " IFS=§ - for I in $BUILD_TODELFILES + for item in ${filelist} do - CHECK_SRCDIR="$(echo ${I#${SEARCHDIRS}*}|grep $BUILDDIR)" + check_srcdir="$(echo ${item#${SEARCHDIRS}*}|grep ${BUILDDIR})" - if [ -z "$CHECK_SRCDIR" ] + if [[ -z ${check_srcdir} ]] then - FILETYPE="$(stat -c %F $I)" - FILEPOSIX="$(stat -c %a $I)" - FILEOWNER="$(stat -c %U $I)" - FILEGROUP="$(stat -c %G $I)" + filetype="$(stat -c %F ${item})" + fileposix="$(stat -c %a ${item})" + fileowner="$(stat -c %U ${item})" + filegroup="$(stat -c %G ${item})" - [[ ${FILEOWNER} = UNKNOWN ]] && FILEOWNER="root" - [[ ${FILEGROUP} = UNKNOWN ]] && FILEGROUP="root" + [[ ${fileowner} = UNKNOWN ]] && fileowner="root" + [[ ${filegroup} = UNKNOWN ]] && filegroup="root" - case "${FILETYPE}" in + case "${filetype}" in "directory") - if [[ $I != ${SEARCHDIRS} ]] + if [[ ${item} != ${SEARCHDIRS} ]] then - echo "${I#${SEARCHDIRS}*}§${FILEPOSIX}§${FILEOWNER}§${FILEGROUP}" >> ${BUILDDIR}/${PKGNAME}/.dirs + echo "${item#${SEARCHDIRS}*}§${fileposix}§${fileowner}§${filegroup}" >> ${BUILDDIR}/${PKGNAME}/.dirs fi ;; "symbolic link") - LNKDEST="$(readlink $I)" - echo "${I#${SEARCHDIRS}*}§${FILEPOSIX}§${LNKDEST#${SEARCHDIRS}*}§${M_MTIME}" >> ${BUILDDIR}/${PKGNAME}/.symlinks + lnkdest="$(readlink ${item})" + echo "${item#${SEARCHDIRS}*}§${fileposix}§${lnkdest#${SEARCHDIRS}*}§${m_mtime}" >> ${BUILDDIR}/${PKGNAME}/.symlinks ;; - "regular empty file") - FILEDIR="$(dirname $I)" - FILEDIR="${FILEDIR#${SEARCHDIRS}*}" - M_MD5SUM="$(md5sum ${I}|cut -d' ' -f1)" - echo "${I#${SEARCHDIRS}*}§${FILEPOSIX}§${FILEOWNER}§${FILEGROUP}§${M_MTIME}§${M_MD5SUM}" >> ${BUILDDIR}/${PKGNAME}/.files - install -d ${BUILDDIR}/${PKGNAME}/binfiles/${FILEDIR} - cp ${I} ${BUILDDIR}/${PKGNAME}/binfiles/${FILEDIR} + filedir="$(dirname ${item})" + filedir="${filedir#${SEARCHDIRS}*}" + m_md5sum="$(md5sum ${item}|cut -d' ' -f1)" + echo "${item#${SEARCHDIRS}*}§${fileposix}§${fileowner}§${filegroup}§${m_mtime}§${m_md5sum}" >> ${BUILDDIR}/${PKGNAME}/.files + install -d ${BUILDDIR}/${PKGNAME}/binfiles/${filedir} + cp ${item} ${BUILDDIR}/${PKGNAME}/binfiles/${filedir} ;; "regular file" ) - FILEDIR="$(dirname $I)" - FILEDIR="${FILEDIR#${SEARCHDIRS}*}" - M_MD5SUM="$(md5sum ${I}|cut -d' ' -f1)" - echo "${I#${SEARCHDIRS}*}§${FILEPOSIX}§${FILEOWNER}§${FILEGROUP}§${M_MTIME}§${M_MD5SUM}" >> ${BUILDDIR}/${PKGNAME}/.files - install -d ${BUILDDIR}/${PKGNAME}/binfiles/${FILEDIR} - cp ${I} ${BUILDDIR}/${PKGNAME}/binfiles/${FILEDIR} + filedir="$(dirname ${item})" + filedir="${filedir#${SEARCHDIRS}*}" + m_md5sum="$(md5sum ${item}|cut -d' ' -f1)" + echo "${item#${SEARCHDIRS}*}§${fileposix}§${fileowner}§${filegroup}§${m_time}§${m_md5sum}" >> ${BUILDDIR}/${PKGNAME}/.files + install -d ${BUILDDIR}/${PKGNAME}/binfiles/${filedir} + cp ${item} ${BUILDDIR}/${PKGNAME}/binfiles/${filedir} ;; "block special file") # convert hex2dec # printf '%d' 0x12 -> 18 - local CHAR_MAJOR="$(printf 0x$(stat -c %t $I))" - local CHAR_MINOR="$(printf 0x$(stat -c %T $I))" - echo "${I#${SEARCHDIRS}*}§${FILEPOSIX}§${FILEPOSIX}§${CHAR_MAJOR}§${FILEOWNER}§${FILEGROUP}" >> ${BUILDDIR}/${PKGNAME}/.pipes + char_major="$(printf 0x$(stat -c %t ${item}))" + char_minor="$(printf 0x$(stat -c %T ${item}))" + echo "${item#${SEARCHDIRS}*}§${fileposix}§${char_major}§${char_minor}§${fileowner}§${filegroup}" >> ${BUILDDIR}/${PKGNAME}/.pipes ;; "character special file") # convert hex2dec # printf '%d' 0x12 -> 18 - local CHAR_MAJOR="$(printf 0x$(stat -c %t $I))" - local CHAR_MINOR="$(printf 0x$(stat -c %T $I))" - echo "${I#${SEARCHDIRS}*}§${FILEPOSIX}§${CHAR_MAJOR}§${CHAR_MINOR}§${FILEOWNER}§${FILEGROUP}" >> ${BUILDDIR}/${PKGNAME}/.char + char_major="$(printf 0x$(stat -c %t ${item}))" + char_minor="$(printf 0x$(stat -c %T ${item}))" + echo "${item#${SEARCHDIRS}*}§${fileposix}§${char_major}§${char_minor}§${fileowner}§${filegroup}" >> ${BUILDDIR}/${PKGNAME}/.char ;; "fifo") - echo "${I#${SEARCHDIRS}*}§${FILEPOSIX}§${FILEOWNER}§${FILEGROUP}" >> ${BUILDDIR}/${PKGNAME}/.fifo + echo "${item#${SEARCHDIRS}*}§${fileposix}§${fileowner}§${filegroup}" >> ${BUILDDIR}/${PKGNAME}/.fifo ;; *)