diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-06-14 22:25:48 +0000 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-06-14 22:25:48 +0000 |
commit | 3f6aaa42c3706673109ffd53810cb7132ed38123 (patch) | |
tree | 418405b0c99ad1ae13df8272a6c2c88f0bc5124e /scripts | |
parent | 54d371cfbdf63ca413e93b234c2d159fe85030b1 (diff) | |
download | ptxdist-3f6aaa42c3706673109ffd53810cb7132ed38123.tar.gz ptxdist-3f6aaa42c3706673109ffd53810cb7132ed38123.tar.xz |
[ptxd_make_xpkg_finish] provide function for generic packaging
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Please enter the commit message for your changes. Lines starting
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@10780 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/ptxd_make_xpkg_finish.sh | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/scripts/lib/ptxd_make_xpkg_finish.sh b/scripts/lib/ptxd_make_xpkg_finish.sh new file mode 100644 index 000000000..c457f1f0c --- /dev/null +++ b/scripts/lib/ptxd_make_xpkg_finish.sh @@ -0,0 +1,93 @@ +#!/bin/bash +# +# Copyright (C) 2005, 2006, 2007 Robert Schwebel <r.schwebel@pengutronix.de> +# 2008, 2009 by Marc Kleine-Budde <mkl@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + + + +# +# collect dependencies +# +# in some rare cases there is more than one xpkg per package and/or +# the names don't correspond, so we have to use the mapping file +# +# in: $pkg_deps (space seperated) +# out: $pkg_xpkg_deps (array) +# +ptxd_make_xpkg_deps() { + # do deps + if [ -z "${pkg_deps}" ]; then + return + fi + + set -- ${pkg_deps[*]} + + local dep + while [ ${#} -ne 0 ]; do + local map="${ptx_state_dir}/${1}.xpkg.map" + shift + + if [ \! -e "${map}" ]; then + continue + fi + + while read dep; do + pkg_xpkg_deps=( "${pkg_xpkg_deps[@]}" "${dep}" ) + done < "${map}" + done +} +export -f ptxd_make_xpkg_deps + + + +# +# function to create a generic package +# +ptxd_make_xpkg_finish() { + ptxd_make_xpkg_init || return + + # + # no perm file -> no files to package -> exit + # + if [ \! -f "${pkg_xpkg_perms}" ]; then + ptxd_warning "Packet '${pkg_xpkg}' is empty. not generating" + rm -rf -- "${pkg_xpkg_tmp}" + return + fi + + + # + # license + # + echo -n "xpkg_finish: collecting license (${pkg_xpkg_license}) ... " + echo "${pkg_xpkg_license}" > "${pkg_xpkg_license_file}" + echo "done." + + + # + # create pkg + # + local ret=0 + + ptxd_make_xpkg_deps || return + + echo -n "xpkg_finish: creating ${pkg_xpkg_type} package ... " && + "ptxd_make_${pkg_xpkg_type}_finish" || ret=$? + rm -rf "${pkg_xpkg_tmp}" + + if [ $? -ne 0 -o ${ret} -ne 0 ]; then + echo "failed." + return 1 + else + echo "done." + fi + + return +} +export -f ptxd_make_xpkg_finish |