34 lines
913 B
Python
Executable file
34 lines
913 B
Python
Executable file
#!/usr/bin/env python3
|
|
#
|
|
# Copyright 2018 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import argparse
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
from util import build_utils
|
|
|
|
|
|
# python -c "import zipfile; zipfile.ZipFile('test.jar', 'w')"
|
|
# du -b test.jar
|
|
_EMPTY_JAR_SIZE = 22
|
|
|
|
|
|
def main():
|
|
# The point of this wrapper is to use AtomicOutput so that output timestamps
|
|
# are not updated when outputs are unchanged.
|
|
ijar_bin, in_jar, out_jar = sys.argv[1:]
|
|
with build_utils.AtomicOutput(out_jar) as f:
|
|
# ijar fails on empty jars: https://github.com/bazelbuild/bazel/issues/10162
|
|
if os.path.getsize(in_jar) <= _EMPTY_JAR_SIZE:
|
|
with open(in_jar, 'rb') as in_f:
|
|
f.write(in_f.read())
|
|
else:
|
|
build_utils.CheckOutput([ijar_bin, in_jar, f.name])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|