| #!/bin/bash | |
| # Copyright 2018 Google LLC | |
| # | |
| # 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. | |
| # Builds a pip package for riegeli. | |
| # | |
| # Usage (where DEST is a where to write the output, e.g. ~/riegeli-dist): | |
| # $ bazel build -c opt python:build_pip_package | |
| # $ bazel-bin/python/build_pip_package --dest DEST --sdist --bdist | |
| set -e | |
| function is_absolute { | |
| [[ "$1" = /* ]] || [[ "$1" =~ ^[a-zA-Z]:[/\\].* ]] | |
| } | |
| function real_path() { | |
| if is_absolute "$1"; then | |
| printf "%s" "$1" | |
| else | |
| printf "%s/%s" "$PWD" "${1#./}" | |
| fi | |
| } | |
| function build_sdist() { | |
| local dest=$1 | |
| python python/setup.py sdist --dist-dir "$dest" | |
| } | |
| function build_bdist() { | |
| local dest=$1 | |
| cd bazel-bin/python/build_pip_package.runfiles/com_google_riegeli/python | |
| python setup.py bdist_wheel --dist-dir "$dest" | |
| cd - | |
| } | |
| function main() { | |
| local dest= | |
| local sdist=false | |
| local bdist=false | |
| while [[ $# -gt 0 ]]; do | |
| if [[ $1 == --dest ]]; then | |
| shift | |
| dest=$(real_path "$1") | |
| elif [[ $1 == --sdist ]]; then | |
| sdist=true | |
| elif [[ $1 == --bdist ]]; then | |
| bdist=true | |
| else | |
| printf "Unknown flag: %s\n" "$1" >&2 | |
| exit 1 | |
| fi | |
| shift | |
| done | |
| if [[ -z $dest ]]; then | |
| printf "Missing required flag: --dest DIRECTORY\n" >&2 | |
| exit 1 | |
| fi | |
| if [[ $sdist != true ]] && [[ $bdist != true ]]; then | |
| printf "Nothing to do: missing --sdist or --bdist\n" >&2 | |
| exit 1 | |
| fi | |
| mkdir -p -- "$dest" | |
| if [[ $sdist = true ]]; then | |
| build_sdist "$dest" | |
| fi | |
| if [[ $bdist = true ]]; then | |
| build_bdist "$dest" | |
| fi | |
| } | |
| main "$@" |