commit:     3b77eea12b547a5136cc0bf6153fb0c56e3f154e
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  2 15:28:00 2016 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Jun  2 15:28:00 2016 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=3b77eea1

crossdev: catch more mkdir/write failures

 crossdev | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/crossdev b/crossdev
index 5cb319c..b3e7bce 100755
--- a/crossdev
+++ b/crossdev
@@ -19,7 +19,7 @@ source /etc/init.d/functions.sh || exit 1
 esyslog() { :; }
 die_logs() {
        echo
-       eerror "$1"
+       eerror "error: $1"
 
        shift
        local log
@@ -33,6 +33,7 @@ die_logs() {
 }
 die() { die_logs "$*"; }
 has() { [[ " ${@:2} " == *" $1 "* ]]; }
+xmkdir() { mkdir "$@" || die "could not mkdir $*"; }
 
 usage() {
        local exit_status=${1:-0}
@@ -400,7 +401,7 @@ setup_portage_vars() {
 
        # make sure we have a valid logdir
        : ${PORT_LOGDIR:=/var/log/portage}
-       mkdir -p "${PORT_LOGDIR}"
+       xmkdir -p "${PORT_LOGDIR}"
 }
 
 uninstall() {
@@ -1038,7 +1039,7 @@ set_metadata() {
        repo_name=$(cat "${f}" 2>/dev/null)
        : ${repo_name:="crossdev"}
 
-       mkdir -p "${meta}"
+       xmkdir -p "${meta}"
        if [[ -e ${layout} ]] ; then
                if ! grep -qs "^${autogen_tag}" "${layout}" ; then
                        einfo "leaving metadata/layout.conf alone in 
${CROSSDEV_OVERLAY}"
@@ -1093,7 +1094,7 @@ set_metadata() {
        done
 
        # write out that layout.conf!
-       cat <<-EOF > "${layout}"
+       cat <<-EOF > "${layout}" || die "could not write ${layout}"
        ${autogen_tag}
        # Delete the above line if you want to manage this file yourself
        masters = ${masters% }
@@ -1102,7 +1103,7 @@ set_metadata() {
        EOF
 }
 
-mkdir -p "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles} || 
die "wtf!?"
+xmkdir -p "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/{cross-${CTARGET},profiles}
 for f in "${CONFIGROOT}" "${CROSSDEV_OVERLAY}"/profiles ; do
        f+="/categories"
        check_trailing_newline "${f}"
@@ -1112,7 +1113,7 @@ done
 cd "${CONFIGROOT}" || die "wtf!?"
 for f in package.{env,keywords,mask,use} env/cross-${CTARGET} 
profile/package.use.{force,mask} ; do
        [[ -f ${f} ]] && die "please convert ${CONFIGROOT}/${f} to a directory"
-       mkdir -p "${f}" || die "wtf!?"
+       xmkdir -p "${f}"
        rm -f "${f}/cross-${CTARGET}"
 done
 
@@ -1123,7 +1124,7 @@ for_each_extra_pkg set_portage X
 set_metadata
 
 # filter out revdep rebuild stuff #182601
-mkdir -p /etc/revdep-rebuild
+xmkdir -p /etc/revdep-rebuild
 echo "SEARCH_DIRS_MASK=/usr/${CTARGET}" > 
/etc/revdep-rebuild/05cross-${CTARGET}
 
 hr
@@ -1131,7 +1132,7 @@ hr
 #######################################
 ### Create links for helper scripts ###
 
-mkdir -p /usr/${CTARGET}
+xmkdir -p /usr/${CTARGET}
 emerge-wrapper --target ${CTARGET} --init || exit 1
 
 #################

Reply via email to