#!/usr/bin/env sh # This file is part of bearssl-sys. It is subject to the license terms in the COPYRIGHT file found in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/bearssl-sys/master/COPYRIGHT. No part of bearssl-sys, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the COPYRIGHT file. # Copyright © 2016 The developers of bearssl-sys. See the COPYRIGHT file in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/bearssl-sys/master/COPYRIGHT. set -e set -u set -f _program_path_find() { if [ "${_program_fattening_program_path+set}" = 'set' ]; then printf '%s\n' "$_program_fattening_program_path" elif [ "${0%/*}" = "$0" ]; then # We've been invoked by the interpreter as, say, bash program if [ -r "$0" ]; then pwd -P # Clutching at straws; probably run via a download, anonymous script, etc, weird execve, etc else printf '\n' fi else # We've been invoked with a relative or absolute path (also when invoked via PATH in a shell) _program_path_find_parentPath() { parentPath="${scriptPath%/*}" if [ -z "$parentPath" ]; then parentPath='/' fi cd "$parentPath" 1>/dev/null } # pdksh / mksh have problems with unsetting a variable that was never set... if [ "${CDPATH+set}" = 'set' ]; then unset CDPATH fi if command -v realpath 1>/dev/null 2>/dev/null; then ( scriptPath="$(realpath "$0")" _program_path_find_parentPath pwd -P ) elif command -v readlink 1>/dev/null 2>/dev/null; then ( scriptPath="$0" while [ -L "$scriptPath" ] do _program_path_find_parentPath scriptPath="$(readlink "$scriptPath")" done _program_path_find_parentPath pwd -P ) else # This approach will fail in corner cases where the script itself is a symlink in a path not parallel with the concrete script ( scriptPath="$0" _program_path_find_parentPath pwd -P ) fi fi } recreate_bindings_main() { local programPath="$(_program_path_find)" cd "$programPath"/.. 1>/dev/null 2>/dev/null local homeFolder="$(pwd)" cd - 1>/dev/null 2>/dev/null cd "$homeFolder" 1>/dev/null 2>/dev/null rm -rf src/bindgen rm -rf src/include rm -rf tools/bindgen/wrapper/temporary rm -rf bindgen-wrapper.conf.d/temporary cargo clean rm -rf .cargo/target tools/build-under-cargo tools/compile-on-mac-os-x-using-cargo build } recreate_bindings_main "$@"