diff options
author | Luotao Fu <l.fu@pengutronix.de> | 2006-11-08 17:06:51 +0000 |
---|---|---|
committer | Luotao Fu <l.fu@pengutronix.de> | 2006-11-08 17:06:51 +0000 |
commit | 0f478f2567d0598096e510aedab5fbd7d6f3b098 (patch) | |
tree | 8b814e327ae1436c19574f98c56cbc5f6bc0144e /scripts | |
parent | 323607766a2e49d72426665433f7165ea44c0c74 (diff) | |
download | ptxdist-0f478f2567d0598096e510aedab5fbd7d6f3b098.tar.gz ptxdist-0f478f2567d0598096e510aedab5fbd7d6f3b098.tar.xz |
fixed automatic target install stage, now doing some beta tests
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@6289 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/make_targetinstall.sh | 70 |
1 files changed, 44 insertions, 26 deletions
diff --git a/scripts/make_targetinstall.sh b/scripts/make_targetinstall.sh index da823fb8e..e803b757a 100644 --- a/scripts/make_targetinstall.sh +++ b/scripts/make_targetinstall.sh @@ -1,11 +1,11 @@ -#!/bin/sh +#!/bin/bash # # automatic generate target install stage for ptx_dist # set -e -. `dirname $0`/libptxdist.sh +#. `dirname $0`/libptxdist.sh usage() { echo @@ -14,74 +14,92 @@ usage() { echo echo " Arguments:" echo - echo " -b <path> build directory" + echo " -t <path> top directory containing source package" echo " -c clean up the temp dir" echo " -d <path> root of install destination" echo " -p <full filename or wildcard> original filename pattern" echo " -r <acces right> access rights" echo " -n <package name> packagename" + echo " -f <full package name> full packagename" echo " -o <owner> owner of the file" echo " -g <group> group of the file" echo " -s <path> state dir" + echo " -i <strip program> name of the program to strip the binary" echo " -h show help" exit 1 } -while getopts "hcb:r:d:p:" OPT +while getopts "hct:n:f:p:r:s:o:g:i:d:" flag do - case "$OPT" in + case "$flag" in h) usage exit 1 ;; - c) CLEANUP=1; + c) CLEANUP=1 ;; - b) BUILDDIR=`ptxd_abspath $OPTARG`; + t) TOPDIR=$OPTARG ;; - n) PACKNAME=$OPTARG; + n) PACKNAME=$OPTARG ;; - p) FILEPATTERN=`ptxd_abspath $OPTARG`; + f) FPACKNAME=$OPTARG + ;; + p) FILEPATTERN=$OPTARG ;; - r) ACCRIGHT=$OPTARG; + r) ACCRIGHT=$OPTARG ;; - s) STATEDIR=$OPTARG; + s) STATEDIR=$OPTARG + ;; + o) FILEOWNER=$OPTARG ;; - o) FILEOWNER=$OPTARG; + g) FILEGROUP=$OPTARG ;; - g) FILEGROUP=$OPTARG; + i) STRIPPER=$OPTARG + ;; + d) DEST_ROOT=$OPTARG ;; - d) DEST_ROOT=`ptxd_abspath $OPTARG`; esac done + shift `expr $OPTIND - 1` -STAMP=auto_targetinstall.stamp ORIG_DIR=`dirname "${FILEPATTERN}"` ORIG_FILE=`basename "${FILEPATTERN}"` +BUILDDIR=${TOPDIR}/${FPACKNAME} +STAMP=${BUILDDIR}/auto_targetinstall.stamp + +[ ! -d "${BUILDDIR}" ] && { echo "Source dir ${BUILDDIR} not found"; exit 1; } + +[ ! -e "${DEST_ROOT}" ] && { echo "creating ${DEST_ROOT}"; mkdir -p ${DEST_ROOT}; } + cd ${BUILDDIR} +echo "DEBUG: builddir: ${BUILDDIR}, dest_root: ${DEST_ROOT}, fileowner: $FILEOWNER" -if [ -e $STAMP ]; +if [ -e $STAMP ];then TMP_DEST=`cat auto_targetinstall.stamp` else - TMP_DEST=`mktemp -p ${BUILDDIR}` - make install DEST_DIR=${TMP_DEST} + TMP_DEST=`mktemp -d -p ${BUILDDIR}` + echo "DEBUG: tmpdir : $TMP_DEST" + make install DESTDIR=${TMP_DEST} echo ${TMP_DEST} > $STAMP + ls ${TMP_DEST}/${FILEPATTERN} >/dev/null + [ $? -ne 0 ] && { echo "no valid installation found in ${TMP_DEST}" >&2; exit 1; } fi -ls ${TMP_DEST}/${FILEPATTER} >/dev/null -[ $? -ne 0 ] && exit 1 [ ! -d ${TMP_DEST} ] && exit 1 -[ $CLEANUP == 1 ] && { rm -rf $TMP_DEST; return; } +[ ! -z $CLEANUP ] && { rm -rf $TMP_DEST; return; } cd ${TMP_DEST} -#find . -mindepth 1 -name "${ORIG_FILE}" \ -# -exec sh -c "echo {} | cut -c 2-" >> ${STATEDIR}/${PACKNAME}.perm \ -# -print -# | cpio -pamd $DEST_ROOT +[ -e ${TMP_DEST}/tmp.perms ] && rm ${TMP_DEST}/tmp.perms + for i in `find . -mindepth 1 -name "${ORIG_FILE}"`; do + if [ ! -d $i ];then + echo "f:`echo $i | cut -c 2-`:${FILEOWNER}:${FILEGROUP}:${ACCRIGHT}" >> ${TMP_DEST}/tmp.perms + fi + [ ! -z ${STATEDIR} ] && mv ${TMP_DEST}/tmp.perms ${STATEDIR}/${PACKNAME}.perms + [ ! -z ${STRIPPER} ] && ${STRIPPER} -R .note -R .comment $i echo $i | cpio -pamd $DEST_ROOT - [ ! -d $i ] && echo "f:`echo $i | cut -c 2-`:${FILEOWNER}:${FILEGROUP}:${ACCRIGHT}" >> ${STATEDIR}/${PACKNAME}.perm done |