fix(relup): create tmp dir to preserve current files
This commit is contained in:
parent
b9a9da3208
commit
40ad23ee74
12
build
12
build
|
@ -108,15 +108,19 @@ make_elixir_rel() {
|
||||||
## extract previous version .tar.gz files to _build/$PROFILE/rel/emqx before making relup
|
## extract previous version .tar.gz files to _build/$PROFILE/rel/emqx before making relup
|
||||||
make_relup() {
|
make_relup() {
|
||||||
local rel_dir="_build/$PROFILE/rel/emqx"
|
local rel_dir="_build/$PROFILE/rel/emqx"
|
||||||
mkdir -p "${rel_dir}/lib"
|
|
||||||
mkdir -p "${rel_dir}/releases"
|
|
||||||
local name_pattern
|
local name_pattern
|
||||||
name_pattern="${PROFILE}-$(./pkg-vsn.sh "$PROFILE" --vsn_matcher --long)"
|
name_pattern="${PROFILE}-$(./pkg-vsn.sh "$PROFILE" --vsn_matcher --long)"
|
||||||
local releases=()
|
local releases=()
|
||||||
while read -r tgzfile ; do
|
while read -r tgzfile ; do
|
||||||
local base_vsn
|
local base_vsn
|
||||||
base_vsn="$(echo "$tgzfile" | grep -oE "[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9])?(-[0-9a-f]{8})?" | head -1)"
|
base_vsn="$(echo "$tgzfile" | grep -oE "[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9])?(-[0-9a-f]{8})?" | head -1)"
|
||||||
tar -C "$rel_dir" -zxf "$tgzfile" --keep-old-files releases lib
|
## we have to create tmp dir to untar old tgz, as `tar --skip-old-files` is not supported on all plantforms
|
||||||
|
local tmp_dir
|
||||||
|
tmp_dir="$(mktemp -d -t emqx.XXXXXXX)"
|
||||||
|
tar -C "$tmp_dir" -zxf "$tgzfile"
|
||||||
|
cp -npr "$tmp_dir/releases"/* "${rel_dir}/releases/" || true
|
||||||
|
cp -npr "$tmp_dir/lib"/* "${rel_dir}/lib/" || true
|
||||||
|
rm -rf "$tmp_dir"
|
||||||
releases+=( "$base_vsn" )
|
releases+=( "$base_vsn" )
|
||||||
done < <("$FIND" _upgrade_base -maxdepth 1 -name "${name_pattern}.tar.gz" -type f)
|
done < <("$FIND" _upgrade_base -maxdepth 1 -name "${name_pattern}.tar.gz" -type f)
|
||||||
if [ ${#releases[@]} -eq 0 ]; then
|
if [ ${#releases[@]} -eq 0 ]; then
|
||||||
|
@ -185,7 +189,7 @@ make_tgz() {
|
||||||
## create tar after change dir (for windows)
|
## create tar after change dir (for windows)
|
||||||
## to avoid creating an extra level of 'emqx' dir in the .tar.gz file
|
## to avoid creating an extra level of 'emqx' dir in the .tar.gz file
|
||||||
pushd "${tard}/emqx" >/dev/null
|
pushd "${tard}/emqx" >/dev/null
|
||||||
tar -zcf "../${target_name}" *
|
tar -zcf "../${target_name}" -- *
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
mv "${tard}/${target_name}" "${target}"
|
mv "${tard}/${target_name}" "${target}"
|
||||||
case "$SYSTEM" in
|
case "$SYSTEM" in
|
||||||
|
|
Loading…
Reference in New Issue