scripts: protect against partially extracted source
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Nov 30 21:34:50 2009 +0100 (2009-11-30)
changeset 1691e0191807e79a
parent 1690 9030e84dafad
child 1692 068c809cc646
scripts: protect against partially extracted source

In case of failure (eg. user hitting Ctrl-C), avoid extracting over
partially extracted source. Will help once we have git available.
scripts/functions
     1.1 --- a/scripts/functions	Mon Nov 30 00:05:45 2009 +0100
     1.2 +++ b/scripts/functions	Mon Nov 30 21:34:50 2009 +0100
     1.3 @@ -577,6 +577,16 @@
     1.4      fi
     1.5      local full_file="${CT_TARBALLS_DIR}/${basename}${ext}"
     1.6  
     1.7 +    # Check if previously partially extracted
     1.8 +    if [ -e "${CT_SRC_DIR}/.${basename}.extracting" ]; then
     1.9 +        CT_DoLog ERROR "The '${basename}' sources were partially extracted."
    1.10 +        CT_DoLog ERROR "Please remove first:"
    1.11 +        CT_DoLog ERROR " - the source dir for '${basename}', in '${CT_SRC_DIR}'"
    1.12 +        CT_DoLog ERROR " - the file '${CT_SRC_DIR}/.${basename}.extracting'"
    1.13 +        CT_Abort "I'll stop now to avoid any carnage..."
    1.14 +    fi
    1.15 +    CT_DoExecLog DEBUG touch "${CT_SRC_DIR}/.${basename}.extracting"
    1.16 +
    1.17      # Check if already extracted
    1.18      if [ -e "${CT_SRC_DIR}/.${basename}.extracted" ]; then
    1.19          CT_DoLog DEBUG "Already extracted '${basename}'"
    1.20 @@ -599,6 +609,7 @@
    1.21      CT_DoExecLog DEBUG chmod -R u+w "${CT_SRC_DIR}"
    1.22  
    1.23      CT_DoExecLog DEBUG touch "${CT_SRC_DIR}/.${basename}.extracted"
    1.24 +    CT_DoExecLog DEBUG rm -f "${CT_SRC_DIR}/.${basename}.extracting"
    1.25  
    1.26      [ "${nochdir}" = "nochdir" ] || CT_Popd
    1.27  }