| Index: appengine/monorail/sql/PRESUBMIT.py
|
| diff --git a/appengine/monorail/sql/PRESUBMIT.py b/appengine/monorail/sql/PRESUBMIT.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a0fb30f41a0e82dc62efce4454ac5bdcd756184b
|
| --- /dev/null
|
| +++ b/appengine/monorail/sql/PRESUBMIT.py
|
| @@ -0,0 +1,32 @@
|
| +# Copyright 2016 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is govered by a BSD-style
|
| +# license that can be found in the LICENSE file or at
|
| +# https://developers.google.com/open-source/licenses/bsd
|
| +
|
| +"""Presubmit script just for Monorail's SQL files."""
|
| +
|
| +
|
| +def AlterTableCheck(input_api, output_api): # pragma: no cover
|
| + this_dir = input_api.PresubmitLocalPath()
|
| + sql_files = set(x for x in input_api.os_listdir(this_dir)
|
| + if (x.endswith('.sql') and x != 'queries.sql'))
|
| + log_file = input_api.os_path.join(this_dir, 'alter-table-log.txt')
|
| + affected_files = set(f.LocalPath() for f in input_api.AffectedTextFiles())
|
| +
|
| + if (any(f in affected_files for f in sql_files) ^
|
| + (log_file in affected_files)):
|
| + return [output_api.PresubmitPromptOrNotify(
|
| + 'It looks like you have modified the sql schema without updating\n'
|
| + 'the alter-table-log, or vice versa. Are you sure you want to do this?')
|
| + ]
|
| + return []
|
| +
|
| +
|
| +def CheckChangeOnUpload(input_api, output_api): # pragma: no cover
|
| + output = AlterTableCheck(input_api, output_api)
|
| + return output
|
| +
|
| +
|
| +def CheckChangeOnCommit(input_api, output_api): # pragma: no cover
|
| + output = AlterTableCheck(input_api, output_api)
|
| + return output
|
|
|