summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2010-07-15 14:31:32 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2010-07-16 15:23:01 +0200
commit1da4db9e8689e23680c40885afdebb3d448a72e9 (patch)
tree79a34844faabff2a15bdd299471d221487285713 /scripts
parentb39f472104f48c31990743197d2dfe2adfe13b55 (diff)
downloadptxdist-1da4db9e8689e23680c40885afdebb3d448a72e9.tar.gz
ptxdist-1da4db9e8689e23680c40885afdebb3d448a72e9.tar.xz
[ptxd_make_image_prepare_work_dir] provide function to prepare the image work dir
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/ptxd_make_image_prepare_work_dir.sh74
1 files changed, 74 insertions, 0 deletions
diff --git a/scripts/lib/ptxd_make_image_prepare_work_dir.sh b/scripts/lib/ptxd_make_image_prepare_work_dir.sh
new file mode 100644
index 000000000..055494e02
--- /dev/null
+++ b/scripts/lib/ptxd_make_image_prepare_work_dir.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+#
+# Copyright (C) 2010 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.
+#
+
+
+#
+# ptxd_make_image_extract_ipkg_files - extract ipkg for later image generation
+#
+# in:
+# - $image_work_dir directory where ipkg are extracted
+# - $image_permissions name of file that should contain all permissions
+# - $image_pkgs_selected_target space seperated list of selected
+# packages
+# - $PTXDIST_IPKG_ARCH_STRING ARCH variable for ipkg files
+# - $PTXCONF_IPKG_IPKG_CONF_URL the URL to use in /etc/ipkg.conf
+#
+# out:
+# - $image_permissions file containing all permissions
+#
+ptxd_make_image_extract_ipkg_files() {
+ # FIXME: consolidate "ptxd_install_setup_src"
+ local src="/etc/ipkg.conf"
+ local ipkg_conf="${PTXDIST_TEMPDIR}/${FUNCNAME}_ipkg.conf"
+ local -a list ptxd_reply
+ list=( \
+ "${PTXDIST_WORKSPACE}/projectroot${PTXDIST_PLATFORMSUFFIX}${src}" \
+ "${PTXDIST_WORKSPACE}/projectroot${src}${PTXDIST_PLATFORMSUFFIX}" \
+ "${PTXDIST_WORKSPACE}/projectroot${src}" \
+ "${PTXDIST_TOPDIR}/generic${src}" \
+ )
+
+ if ! ptxd_get_path "${list[@]}"; then
+ local IFS="
+"
+ ptxd_bailout "
+unable to find '${src}'
+
+These location have been searched:
+${list[*]}
+"
+ fi
+
+ rm -rf "${image_work_dir}" &&
+ mkdir -p "${image_work_dir}" &&
+
+ ARCH="${PTXDIST_IPKG_ARCH_STRING}" \
+ SRC="${PTXCONF_IPKG_IPKG_CONF_URL}" \
+ ptxd_replace_magic "${ptxd_reply}" > "${ipkg_conf}" &&
+
+ DESTDIR="${image_work_dir}" \
+ fakeroot -- ipkg-cl -f "${ipkg_conf}" -o "${image_work_dir}" \
+ install "${ptxd_reply_ipkg_files[@]}" &&
+ if ! cat "${ptxd_reply_perm_files[@]}" > "${image_permissions}"; then
+ echo "${PTXDIST_LOG_PROMPT}error: failed read permission files" >&2
+ return 1
+ fi
+
+ return
+}
+export -f ptxd_make_image_extract_ipkg_files
+
+
+ptxd_make_image_prepare_work_dir() {
+ ptxd_make_image_init &&
+ ptxd_get_ipkg_files &&
+ ptxd_make_image_extract_ipkg_files
+}
+export -f ptxd_make_image_prepare_work_dir