populate_sdk_base: tarball installer: SDK overwrite warning

Submitted by Laurentiu Palcu on Nov. 26, 2012, 9:31 a.m. | Patch ID: 39563


Message ID 1353922300-22538-1-git-send-email-laurentiu.palcu@intel.com
State Accepted
Commit b751ec137d0228b40a90e9e32b24f5cb5732225b
Headers show

Commit Message

Laurentiu Palcu Nov. 26, 2012, 9:31 a.m.
This patch contains two fixes:
  * if the user wants to install the SDK in a directory that already
    contains a SDK for the same architecture, a warning will be shown;
  * when the symbolic links are relocated use -n option. Otherwise,
    symbolic links to existing directories will be created in the
	directory itself;

[YOCTO #3401]

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
 meta/classes/populate_sdk_base.bbclass |   15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index ac34c32..f1fcde6 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -143,11 +143,20 @@  else
 	target_sdk_dir=$(readlink -m $target_sdk_dir)
-printf "You are about to install the SDK to \"$target_sdk_dir\". Proceed[Y/n]?"
+if [ -e "$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}" ]; then
+	echo "The directory \"$target_sdk_dir\" already contains a SDK for this architecture."
+	printf "If you continue, existing files will be overwritten! Proceed[y/N]?"
+	default_answer="n"
+	printf "You are about to install the SDK to \"$target_sdk_dir\". Proceed[Y/n]?"
+	default_answer="y"
 read answer
 if [ "$answer" = "" ]; then
-	answer="y"
+	answer="$default_answer"
 if [ "$answer" != "Y" -a "$answer" != "y" ]; then
@@ -188,7 +197,7 @@  find $native_sysroot -type f -exec file '{}' \;|grep ":.*ASCII.*text"|cut -d':'
 # change all symlinks pointing to ${SDKPATH}
 for l in $(find $native_sysroot -type l); do
-	ln -sf $(readlink $l|sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:") $l
+	ln -sfn $(readlink $l|sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:") $l
 echo done