github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/soong/scripts/jar-args.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 # Script that takes a list of files on stdin and converts it to arguments to jar on stdout 18 # Usage: 19 # find $dir -type f | sort | jar-args.sh $dir > jar_args.txt 20 # jar cf out.jar @jar_args.txt 21 22 case $(uname) in 23 Linux) 24 extended_re=-r 25 ;; 26 Darwin) 27 extended_re=-E 28 ;; 29 *) echo "unknown OS:" $(uname) >&2 && exit 1;; 30 esac 31 32 if [ "$1" == "--test" ]; then 33 in=$(mktemp) 34 expected=$(mktemp) 35 out=$(mktemp) 36 cat > $in <<EOF 37 a 38 a/b 39 a/b/' 40 a/b/" 41 a/b/\\ 42 a/b/# 43 a/b/a 44 EOF 45 cat > $expected <<EOF 46 47 -C 'a' 'b' 48 -C 'a' 'b/\\'' 49 -C 'a' 'b/"' 50 -C 'a' 'b/\\\\' 51 -C 'a' 'b/#' 52 -C 'a' 'b/a' 53 EOF 54 cat $in | $0 a > $out 55 56 if cmp $out $expected; then 57 status=0 58 echo "PASS" 59 else 60 status=1 61 echo "FAIL" 62 echo "got:" 63 cat $out 64 echo "expected:" 65 cat $expected 66 fi 67 rm -f $in $expected $out 68 exit $status 69 fi 70 71 # In order, the regexps: 72 # - Strip $1/ from the beginning of each line, and everything from lines that just have $1 73 # - Escape single and double quotes, '#', ' ', and '\' 74 # - Prefix each non-blank line with -C $1 75 sed ${extended_re} \ 76 -e"s,^$1(/|\$),," \ 77 -e"s,(['\\]),\\\\\1,g" \ 78 -e"s,^(.+),-C '$1' '\1',"