#!/usr/bin/env bash TOOLS_TAR="" HOST_BUILD_DIR=$(pwd)/"build_dir/host" HOST_STAGING_DIR_STAMP=$(pwd)/"staging_dir/host/stamp" refresh_timestamps() { find -H "$1" -not -type l -print0 | xargs -0 touch } extract_prebuilt_tar() { tar -xf "$1" } refresh_prebuilt_tools() { if [ ! -d "$HOST_BUILD_DIR" ]; then echo "Can't find Host Build Dir "$HOST_BUILD_DIR"" >&2 exit 1 fi refresh_timestamps "$HOST_BUILD_DIR" sleep 1 if [ ! -d "$HOST_STAGING_DIR_STAMP" ]; then echo "Can't find Host Staging Dir Stamp "$HOST_STAGING_DIR_STAMP"" >&2 exit 1 fi refresh_timestamps "$HOST_STAGING_DIR_STAMP" return 0 } install_prebuilt_tools() { extract_prebuilt_tar "$TOOLS_TAR" refresh_prebuilt_tools return 0 } while [ -n "$1" ]; do arg="$1"; shift case "$arg" in --host-build-dir) [ -d "$1" ] || { echo "Directory '$1' does not exist." >&2 exit 1 } HOST_BUILD_DIR="$(cd "$1"; pwd)"; shift ;; --host-staging-dir-stamp) [ -d "$1" ] || { echo "Directory '$1' does not exist." >&2 exit 1 } HOST_STAGING_DIR_STAMP="$(cd "$1"; pwd)"; shift ;; --tools) [ -f "$1" ] || { echo "Tools tar file '$1' does not exist." >&2 exit 1 } TOOLS_TAR="$1"; shift install_prebuilt_tools exit $? ;; --refresh) refresh_prebuilt_tools exit $? ;; -h|--help) me="$(basename "$0")" echo -e "\nUsage:\n" >&2 echo -e " $me --host-build-dir {directory}" >&2 echo -e " Set to refresh timestamp of this build directory" >&2 echo -e " with --tools." >&2 echo -e " THIS OPTION MUST BE SET BEFORE --tools." >&2 echo -e " If not provided the default directory is:" >&2 echo -e " $(pwd)/build_dir/host\n" >&2 echo -e " $me --host-staging-dir-stamp {directory}" >&2 echo -e " Set to refresh staging timestamp present in this" >&2 echo -e " directory with --tools." >&2 echo -e " THIS OPTION MUST BE SET BEFORE --tools." >&2 echo -e " If not provided the default directory is:" >&2 echo -e " $(pwd)/staging_dir/host/stamp\n" >&2 echo -e " $me --tools {tar}" >&2 echo -e " Install the prebuilt tools present in the passed" >&2 echo -e " tar and prepare them." >&2 echo -e " To correctly use them it's needed to update the" >&2 echo -e " timestamp of each tools to skip recompilation.\n" >&2 echo -e " $me --refresh" >&2 echo -e " Refresh timestamps of already extracted prebuilt" >&2 echo -e " tools to correctly use them and skip" >&2 echo -e " recompilation.\n" >&2 echo -e " $me --help" >&2 echo -e " Display this help text and exit.\n\n" >&2 exit 1 ;; *) echo "Unknown argument '$arg'" >&2 exec $0 --help ;; esac done exec $0 --help