aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts
diff options
context:
space:
mode:
authorGravatar Ben Hamilton (Ben Gertzfield) <bhamiltoncx@gmail.com>2018-03-29 09:44:48 -0600
committerGravatar Paul Beusterien <paulbeusterien@google.com>2018-03-29 08:44:48 -0700
commitcb1f65dfcf78a6cfc11915c2c5695fa023cf3e09 (patch)
tree51ffdb63e1e461a1af1ce7e28291f2c40e5bb834 /scripts
parent13ff01e20ca796676ba74d0b99065199eca9d309 (diff)
Migrate Firebase off ObjC module @import statements (#992)
* Migrate Firebase off @import statements * - Migrate tests and test utils from @import to #import. - Update Xcode projects for tests to explicitly link in framework deps. - Update check_no_module_imports.sh to look for @imports in tests/test utils/ integration tests. * Ensure check_no_module_imports.sh explicitly exits with code 0 on success.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/check_no_module_imports.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/check_no_module_imports.sh b/scripts/check_no_module_imports.sh
new file mode 100755
index 0000000..c00c1db
--- /dev/null
+++ b/scripts/check_no_module_imports.sh
@@ -0,0 +1,41 @@
+# Copyright 2018 Google
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Fail if any source files contain Objective-C module @imports, excluding:
+# * Example sources
+# * Sample sources
+
+options=(
+ -n # show line numbers
+ -I # exclude binary files
+ '^@import'
+)
+
+function exit_with_error {
+ echo "ERROR: @import statement found in the files above. Please use #import instead."
+ exit 1
+}
+
+git grep "${options[@]}" \
+ -- ':(exclude,glob)**/Example/**' ':(exclude,glob)**/Sample/**' && exit_with_error
+
+# Tests are under the Example directory, so we have to separately grep them for
+# @import statements (otherwise they'd be excluded).
+git grep "${options[@]}" \
+ -- ':(glob)**/Tests/**' ':(glob)**/TestUtils/**' ':(glob)**/IntegrationTests/**' && \
+ exit_with_error
+
+# We need to explicitly exit 0, since we expect `git grep` to return an error
+# if no @import calls are found.
+exit 0