gerrit/tools/setup_gjf.sh
Dave Borowitz 3efa1058b2 Upgrade google-java-format to 1.7
This new version has the nice feature of putting multiple chained method
calls before a .stream() on a single line. The diff is a bit large but
it's removing a lot of newlines which is nice.

Change-Id: I260b620aa6a1bc77b06be9672a1f281ab0d0d0f8
2019-03-13 16:12:42 +09:00

96 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eu
# Keep this version in sync with dev-contributing.txt.
VERSION=${1:-1.7}
case "$VERSION" in
1.3)
SHA1="a73cfe6f9af01bd6ff150c0b50c9d620400f784c"
;;
1.5)
SHA1="b1f79e4d39a3c501f07c0ce7e8b03ac6964ed1f1"
;;
1.6)
SHA1="02b3e84e52d2473e2c4868189709905a51647d03"
;;
1.7)
SHA1="b6d34a51e579b08db7c624505bdf9af4397f1702"
;;
*)
echo "unknown google-java-format version: $VERSION"
exit 1
;;
esac
root="$(git rev-parse --show-toplevel)"
if [[ -z "$root" ]]; then
echo "google-java-format setup requires a git working tree"
exit 1
fi
dir="$root/tools/format"
mkdir -p "$dir"
name="google-java-format-$VERSION-all-deps.jar"
url="https://github.com/google/google-java-format/releases/download/google-java-format-$VERSION/$name"
"$root/tools/download_file.py" -o "$dir/$name" -u "$url" -v "$SHA1"
launcher="$dir/google-java-format-$VERSION"
cat > "$launcher" <<EOF
#!/bin/bash
#
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
function abs_script_dir_path {
SOURCE=\${BASH_SOURCE[0]}
while [ -h "\$SOURCE" ]; do
DIR=\$( cd -P \$( dirname "\$SOURCE") && pwd )
SOURCE=\$(readlink "\$SOURCE")
[[ \$SOURCE != /* ]] && SOURCE="\$DIR/\$SOURCE"
done
DIR=\$( cd -P \$( dirname "\$SOURCE" ) && pwd )
echo \$DIR
}
set -e
dir="\$(abs_script_dir_path "\$0")"
exec java -jar "\$dir/$name" "\$@"
EOF
chmod +x "$launcher"
cat <<EOF
Installed launcher script at $launcher
To set up an alias, add the following to your ~/.bashrc or equivalent:
alias google-java-format='$launcher'
EOF