github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/soong/scripts/jars-to-module-info-java.sh (about)

     1  #!/bin/bash -e
     2  
     3  # Copyright 2017 Google Inc. All rights reserved.
     4  #
     5  # Licensed under the Apache License, Version 2.0 (the "License");
     6  # you may not use this file except in compliance with the License.
     7  # You may obtain a copy of the License at
     8  #
     9  #     http://www.apache.org/licenses/LICENSE-2.0
    10  #
    11  # Unless required by applicable law or agreed to in writing, software
    12  # distributed under the License is distributed on an "AS IS" BASIS,
    13  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  # See the License for the specific language governing permissions and
    15  # limitations under the License.
    16  
    17  # Extracts the Java package names of all classes in the .jar files and writes a module-info.java
    18  # file to stdout that exports all of those packages.
    19  
    20  if [ -z "$1" ]; then
    21    echo "usage: $0 <module name> <jar1> [<jar2> ...]" >&2
    22    exit 1
    23  fi
    24  
    25  module_name=$1
    26  shift
    27  
    28  echo "module ${module_name} {"
    29  for j in "$@"; do zipinfo -1 $j ; done \
    30    | grep -E '/[^/]*\.class$' \
    31    | sed 's|\(.*\)/[^/]*\.class$|    exports \1;|g' \
    32    | sed 's|/|.|g' \
    33    | sort -u
    34  echo "}"