From patchwork Sun Jul 6 21:27:15 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 367399 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ozlabs.org (Postfix) with ESMTP id 160241400E7 for ; Mon, 7 Jul 2014 07:27:39 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 57FFD894D7; Sun, 6 Jul 2014 21:27:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zmVSIDOb3siP; Sun, 6 Jul 2014 21:27:33 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id BDDBB89128; Sun, 6 Jul 2014 21:27:29 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id B50451BFA1E for ; Sun, 6 Jul 2014 21:27:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id AFBCB2FB3D for ; Sun, 6 Jul 2014 21:27:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CoM-0kPbvQ8J for ; Sun, 6 Jul 2014 21:27:24 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wg0-f44.google.com (mail-wg0-f44.google.com [74.125.82.44]) by silver.osuosl.org (Postfix) with ESMTPS id 85DF52742D for ; Sun, 6 Jul 2014 21:27:24 +0000 (UTC) Received: by mail-wg0-f44.google.com with SMTP id k14so3486466wgh.3 for ; Sun, 06 Jul 2014 14:27:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=PXUgU4rsb/GEryfOimUMf5+b7BAe1MMgMjHX+e92tX8=; b=h9SAh1l3hfRonNw7Rc2qydLzQ+EU4SWokPeuHejUA6p8t8q5w0nRwjIdURqJ74r9P8 axsabRdx4inZwxDbdUZNc//67m/jm6cQolcXj3+DUqdGHDJPVGqGDnAqfbaWNeuaGY+T YAdJT2eomRVoDLnUG6sUT0+FH9JEAWLb6rAd5+6Le1GYtKqHyMdPEe7C+AUkX6cL5cwB fmnsL2HcRR0LK9zXCcODgvyWoyZ1oJ/cgz4H32TklmYI0VgXGkasccIxZrfA7pIeDvZt 38sbRqhi4bJoWPtnNpOuJXWxihKMKCf4M7Y1dJOvXTm/cXzqsP2UA7phdBYszeTO+/MU vkhg== X-Received: by 10.180.102.100 with SMTP id fn4mr14131173wib.22.1404682043026; Sun, 06 Jul 2014 14:27:23 -0700 (PDT) Received: from gourin.bzh.lan (ks3095497.kimsufi.com. [94.23.60.27]) by mx.google.com with ESMTPSA id ey16sm107205473wid.14.2014.07.06.14.27.21 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 06 Jul 2014 14:27:22 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@buildroot.org Date: Sun, 6 Jul 2014 23:27:15 +0200 Message-Id: <399c6d6d31d5b3dbe337ce97bb18c3e19f224422.1404681878.git.yann.morin.1998@free.fr> X-Mailer: git-send-email 1.9.1 In-Reply-To: References: Cc: "Yann E. MORIN" Subject: [Buildroot] [PATCH 4/5] support/download: only create final temp file when needed X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net Create the temp file in the final location only when it is needed. This avoids the nasty experience of seeing lots of temp files in BR2_DL_DIR, that would linger around in case the downloads fails. Add a comment on why we don;t clean-up after git. Reported-by: Peter Korsgaard Signed-off-by: "Yann E. MORIN" --- support/download/bzr | 2 +- support/download/cvs | 2 +- support/download/git | 6 ++++-- support/download/hg | 2 +- support/download/scp | 2 +- support/download/svn | 2 +- support/download/wget | 2 +- 7 files changed, 10 insertions(+), 8 deletions(-) diff --git a/support/download/bzr b/support/download/bzr index f86fa82..a2cb440 100755 --- a/support/download/bzr +++ b/support/download/bzr @@ -17,7 +17,6 @@ rev="${2}" output="${3}" tmp_dl="$( mktemp "${BUILD_DIR}/.XXXXXX" )" -tmp_output="$( mktemp "${output}.XXXXXX" )" # Play tic-tac-toe with temp files # - first, we download to a trashable location (the build-dir) @@ -27,6 +26,7 @@ tmp_output="$( mktemp "${output}.XXXXXX" )" ret=1 if ${BZR} export --format=tgz "${tmp_dl}" "${repo}" -r "${rev}"; then + tmp_output="$( mktemp "${output}.XXXXXX" )" if cat "${tmp_dl}" >"${tmp_output}"; then mv "${tmp_output}" "${output}" ret=0 diff --git a/support/download/cvs b/support/download/cvs index a8ab080..22863d8 100755 --- a/support/download/cvs +++ b/support/download/cvs @@ -21,7 +21,6 @@ basename="${4}" output="${5}" repodir="${basename}.tmp-cvs-checkout" -tmp_output="$( mktemp "${output}.XXXXXX" )" cd "${BUILD_DIR}" # Remove leftovers from a previous failed run @@ -36,6 +35,7 @@ rm -rf "${repodir}" ret=1 if ${CVS} -z3 -d":pserver:anonymous@${repo}" \ co -d "${repodir}" -r ":${rev}" -P "${rawname}"; then + tmp_output="$( mktemp "${output}.XXXXXX" )" if tar czf - "${repodir}" >"${tmp_output}"; then mv "${tmp_output}" "${output}" ret=0 diff --git a/support/download/git b/support/download/git index b0031e5..d3fcdaf 100755 --- a/support/download/git +++ b/support/download/git @@ -19,8 +19,6 @@ basename="${3}" output="${4}" repodir="${basename}.tmp-git-checkout" -tmp_tar="$( mktemp "${BUILD_DIR}/.XXXXXX" )" -tmp_output="$( mktemp "${output}.XXXXXX" )" # Play tic-tac-toe with temp files # - first, we download to a trashable location (the build-dir) @@ -33,6 +31,8 @@ cd "${BUILD_DIR}" # Remove leftovers from a previous failed run rm -rf "${repodir}" +# Upon failure, git cleans behind itself, so no need to catch failures here. +# The only case when git would not clean up, is if it gets killed with SIGKILL. if [ -n "$(${GIT} ls-remote "${repo}" "${cset}" 2>&1)" ]; then printf "Doing shallow clone\n" ${GIT} clone --depth 1 -b "${cset}" --bare "${repo}" "${repodir}" @@ -43,8 +43,10 @@ fi ret=1 pushd "${repodir}" >/dev/null +tmp_tar="$( mktemp "${BUILD_DIR}/.XXXXXX" )" if ${GIT} archive --prefix="${basename}/" --format=tar "${cset}" \ >"${tmp_tar}"; then + tmp_output="$( mktemp "${output}.XXXXXX" )" if gzip -c "${tmp_tar}" >"${tmp_output}"; then mv "${tmp_output}" "${output}" ret=0 diff --git a/support/download/hg b/support/download/hg index 8b36db9..7e5c9eb 100755 --- a/support/download/hg +++ b/support/download/hg @@ -19,7 +19,6 @@ basename="${3}" output="${4}" repodir="${basename}.tmp-hg-checkout" -tmp_output="$( mktemp "${output}.XXXXXX" )" cd "${BUILD_DIR}" # Remove leftovers from a previous failed run @@ -33,6 +32,7 @@ rm -rf "${repodir}" ret=1 if ${HG} clone --noupdate --rev "${cset}" "${repo}" "${repodir}"; then + tmp_output="$( mktemp "${output}.XXXXXX" )" if ${HG} archive --repository "${repodir}" --type tgz \ --prefix "${basename}" --rev "${cset}" \ - >"${tmp_output}"; then diff --git a/support/download/scp b/support/download/scp index e16ece5..1cc18de 100755 --- a/support/download/scp +++ b/support/download/scp @@ -13,10 +13,10 @@ set -e url="${1}" output="${2}" tmp_dl="$( mktemp "${BUILD_DIR}/.XXXXXX" )" -tmp_output="$( mktemp "${output}.XXXXXX" )" ret=1 if ${SCP} "${url}" "${tmp_dl}"; then + tmp_output="$( mktemp "${output}.XXXXXX" )" if cat "${tmp_dl}" >"${tmp_output}"; then mv "${tmp_output}" "${output}" ret=0 diff --git a/support/download/svn b/support/download/svn index 259d3ed..232d887 100755 --- a/support/download/svn +++ b/support/download/svn @@ -19,7 +19,6 @@ basename="${3}" output="${4}" repodir="${basename}.tmp-svn-checkout" -tmp_output="$( mktemp "${output}.XXXXXX" )" cd "${BUILD_DIR}" # Remove leftovers from a previous failed run @@ -33,6 +32,7 @@ rm -rf "${repodir}" ret=1 if ${SVN} export "${repo}@${rev}" "${repodir}"; then + tmp_output="$( mktemp "${output}.XXXXXX" )" if tar czf - "${repodir}" >"${tmp_output}"; then mv "${tmp_output}" "${output}" ret=0 diff --git a/support/download/wget b/support/download/wget index 0f71108..e961d71 100755 --- a/support/download/wget +++ b/support/download/wget @@ -15,7 +15,6 @@ url="${1}" output="${2}" tmp_dl="$( mktemp "${BUILD_DIR}/.XXXXXX" )" -tmp_output="$( mktemp "${output}.XXXXXX" )" # Play tic-tac-toe with temp files # - first, we download to a trashable location (the build-dir) @@ -25,6 +24,7 @@ tmp_output="$( mktemp "${output}.XXXXXX" )" ret=1 if ${WGET} -O "${tmp_dl}" "${url}"; then + tmp_output="$( mktemp "${output}.XXXXXX" )" if cat "${tmp_dl}" >"${tmp_output}"; then mv "${tmp_output}" "${output}" ret=0