Skip to content

Commit 8a13a59

Browse files
committed
Fix
Signed-off-by: Brentley Jones <github@brentleyjones.com>
1 parent 0d4c0c8 commit 8a13a59

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

xcodeproj/internal/templates/runner.sh

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -120,22 +120,19 @@ readonly output_base="${execution_root%/*/*}"
120120
# Set bazel env
121121
%collect_bazel_env%
122122

123-
function replace_if_changed() {
124-
local -r _new_file="$1"
125-
local -r _destination="$2"
126-
127-
if [[ -f "$_destination" ]] && cmp -s "$_new_file" "$_destination"; then
128-
rm -f "$_new_file"
129-
return
123+
cleanup() {
124+
rm -f "${defs_bzl_tmp:-}"
125+
if [[ -n "${installer_inputs_dir:-}" ]]; then
126+
rm -r "$installer_inputs_dir"
130127
fi
131-
132-
mv -f "$_new_file" "$_destination"
133-
chmod u+w "$_destination"
134128
}
129+
trap cleanup EXIT
135130

136131
# Avoid touching files in `@rules_xcodeproj_generated` unless their contents
137132
# actually changed. Rewriting them on every invocation invalidates the
138133
# generated package and forces Bazel to redo package analysis on warm runs.
134+
# `BUILD` can be compared directly because it is copied verbatim.
135+
# `defs.bzl` is derived content, so compare its final contents before copying.
139136
# Create files for the generator target
140137
readonly generator_package_directory="$output_base/rules_xcodeproj.noindex/%generator_package_name%"
141138

@@ -147,7 +144,7 @@ then
147144
chmod u+w "$generator_package_directory/BUILD"
148145
fi
149146

150-
defs_bzl_tmp="$(mktemp "$generator_package_directory/defs.bzl.XXXXXX")"
147+
defs_bzl_tmp="$(mktemp)"
151148
cp "$generator_defs_bzl" "$defs_bzl_tmp"
152149

153150
cat <<EOF >> "$defs_bzl_tmp"
@@ -159,11 +156,14 @@ BAZEL_PATH = "$bazel_path"
159156
WORKSPACE_DIRECTORY = "$BUILD_WORKSPACE_DIRECTORY"
160157
EOF
161158

162-
replace_if_changed "$defs_bzl_tmp" "$generator_package_directory/defs.bzl"
159+
if [[ ! -f "$generator_package_directory/defs.bzl" ]] || ! cmp -s "$defs_bzl_tmp" "$generator_package_directory/defs.bzl"
160+
then
161+
cp "$defs_bzl_tmp" "$generator_package_directory/defs.bzl"
162+
chmod u+w "$generator_package_directory/defs.bzl"
163+
fi
163164

164165
installer_inputs_dir=$(mktemp -d)
165166
readonly installer_inputs_dir
166-
trap 'rm -r "$installer_inputs_dir"' EXIT
167167

168168
bazelrcs=(
169169
--noworkspace_rc

0 commit comments

Comments
 (0)