diff options
Diffstat (limited to 'scripts/lib/ptxd_make_xpkg_pkg.sh')
-rw-r--r-- | scripts/lib/ptxd_make_xpkg_pkg.sh | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh b/scripts/lib/ptxd_make_xpkg_pkg.sh index f094cb130..9e5288418 100644 --- a/scripts/lib/ptxd_make_xpkg_pkg.sh +++ b/scripts/lib/ptxd_make_xpkg_pkg.sh @@ -22,6 +22,17 @@ ptxd_install_error() { } export -f ptxd_install_error +mkdir_p() { + local d + for d in "${@}"; do + if [ ! -d "${d}" ]; then + mkdir -p "${@}" + return + fi + done +} +export -f mkdir_p + # # ptxd_install_getent_id # @@ -119,7 +130,6 @@ export -f ptxd_install_setup_global ptxd_install_lock() { local lockfile - mkdir -p "${PTXDIST_TEMPDIR}/locks" if [ -n "${dst}" ]; then lockfile="${PTXDIST_TEMPDIR}/locks/${dst//\//-}" @@ -271,7 +281,7 @@ ptxd_install_virtfs() { for d in "${ndirs[@]/%/${dst}}"; do dir="${d%/*}/.virtfs_metadata" file="${dir}/${d##*/}"&& - mkdir -p "${dir}" && + mkdir_p "${dir}" && cat <<- EOF > "${file}" virtfs.uid=${usr} virtfs.gid=${grp} @@ -297,7 +307,7 @@ ptxd_install_dir_impl() { install -m "${mod}" -o "${usr}" -g "${grp}" -d "${pdirs[@]/%/${dst}}" else # don't overwrite existing permissions - mkdir -p "${dirs[@]/%/${dst}}" + mkdir_p "${dirs[@]/%/${dst}}" fi && ptxd_install_virtfs @@ -322,7 +332,7 @@ ptxd_ensure_dir() { if [ "${no_skip}" != 1 ]; then # just create the rest and continue if virtfs data already exists # but don't overwrite existing permissions - mkdir -p "${dirs[@]/%/${dst}}" && + mkdir_p "${dirs[@]/%/${dst}}" && return fi && ptxd_install_lock && @@ -1118,6 +1128,8 @@ ptxd_make_xpkg_pkg() { local pkg_xpkg_perms="$4" local -a dirs ndirs pdirs ddirs + mkdir_p "${PTXDIST_TEMPDIR}/locks" && + ptxd_install_setup_global && . "${pkg_xpkg_cmds}" && |