mirror of https://github.com/bazelbuild/rules_cc
Add --inline option to legacy_fields_migrator
https://github.com/bazelbuild/bazel/issues/5883 RELNOTES: None. PiperOrigin-RevId: 227827560
This commit is contained in:
parent
b809b1312f
commit
30e32836fa
|
@ -24,6 +24,7 @@ import os
|
|||
flags.DEFINE_string("input", None, "Input CROSSTOOL file to be migrated")
|
||||
flags.DEFINE_string("output", None,
|
||||
"Output path where to write migrated CROSSTOOL.")
|
||||
flags.DEFINE_boolean("inline", None, "Overwrite --input file")
|
||||
|
||||
|
||||
def main(unused_argv):
|
||||
|
@ -31,31 +32,34 @@ def main(unused_argv):
|
|||
|
||||
input_filename = flags.FLAGS.input
|
||||
output_filename = flags.FLAGS.output
|
||||
inline = flags.FLAGS.inline
|
||||
|
||||
if not input_filename:
|
||||
raise app.UsageError("ERROR input unspecified")
|
||||
if not output_filename:
|
||||
raise app.UsageError("ERROR output unspecified")
|
||||
raise app.UsageError("ERROR --input unspecified")
|
||||
if not output_filename and not inline:
|
||||
raise app.UsageError("ERROR --output unspecified and --inline not passed")
|
||||
if output_filename and inline:
|
||||
raise app.UsageError("ERROR both --output and --inline passed")
|
||||
|
||||
with open(to_absolute_path(input_filename), "r") as f:
|
||||
input_text = f.read()
|
||||
|
||||
f = open(to_absolute_path(input_filename), "r")
|
||||
input_text = f.read()
|
||||
text_format.Merge(input_text, crosstool)
|
||||
f.close()
|
||||
|
||||
output_text = migrate_legacy_fields(crosstool)
|
||||
|
||||
f = open(to_absolute_path(output_filename), "w")
|
||||
migrate_legacy_fields(crosstool)
|
||||
output_text = text_format.MessageToString(crosstool)
|
||||
f.write(output_text)
|
||||
f.close()
|
||||
|
||||
resolved_output_filename = to_absolute_path(
|
||||
input_filename if inline else output_filename)
|
||||
with open(resolved_output_filename, "w") as f:
|
||||
f.write(output_text)
|
||||
|
||||
def to_absolute_path(path):
|
||||
path = os.path.expanduser(path)
|
||||
if os.path.isabs(path):
|
||||
return path
|
||||
else:
|
||||
if os.environ["BUILD_WORKING_DIRECTORY"]:
|
||||
if "BUILD_WORKING_DIRECTORY" in os.environ:
|
||||
return os.path.join(os.environ["BUILD_WORKING_DIRECTORY"], path)
|
||||
else:
|
||||
return path
|
||||
|
|
Loading…
Reference in New Issue