diff --git a/nix/common/common.sh b/nix/common/common.sh index 267d85c..2c5e171 100644 --- a/nix/common/common.sh +++ b/nix/common/common.sh @@ -2683,48 +2683,49 @@ __resource() { if [ "$_FLAG" = "1" ]; then [ ! -d $FINAL_DESTINATION ] && mkdir -p $FINAL_DESTINATION - case ${PROTOCOL} in - # TODO - HOMEBREW_BOTTLE) - if [ "$_opt_get" = "ON" ]; then __download_uncompress "$URI" "$_download_filename" "$FINAL_DESTINATION" "$_STRIP"; fi - if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi - ;; - HTTP_ZIP ) - if [ "$_opt_get" = "ON" ]; then __download_uncompress "$URI" "$_download_filename" "$FINAL_DESTINATION" "$_STRIP"; fi - if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi - ;; - HTTP ) - # HTTP protocol use always merge by default : because it never erase destination folder - # but the 'merged' flag file will be created only if we pass the option MERGE - if [ "$_opt_get" = "ON" ]; then __download "$URI" "$_download_filename" "$FINAL_DESTINATION"; fi - if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi - ;; - HG ) - if [ "$_opt_revert" = "ON" ]; then cd "$FINAL_DESTINATION"; hg revert --all -C; fi - if [ "$_opt_update" = "ON" ]; then cd "$FINAL_DESTINATION"; hg pull; hg update $_checkout_version; fi - if [ "$_opt_get" = "ON" ]; then hg clone $URI "$FINAL_DESTINATION"; if [ ! "$_checkout_version" = "" ]; then cd "$FINAL_DESTINATION"; hg update $_checkout_version; fi; fi - # [ "$_opt_merge" = "ON" ] && echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME" - ;; - GIT ) - __require "git" "git" "SYSTEM" - if [ "$_opt_revert" = "ON" ]; then cd "$FINAL_DESTINATION"; git reset --hard; fi - if [ "$_opt_update" = "ON" ]; then cd "$FINAL_DESTINATION"; git pull;if [ ! "$_checkout_version" = "" ]; then git checkout $_checkout_version; fi; fi - if [ "$_opt_get" = "ON" ]; then git clone --recursive $URI "$FINAL_DESTINATION"; if [ ! "$_checkout_version" = "" ]; then cd "$FINAL_DESTINATION"; git checkout $_checkout_version; fi; fi - # [ "$_opt_merge" = "ON" ] && echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME" - ;; - FILE ) - if [ "$_opt_get" = "ON" ]; then __copy_folder_content_into "$URI" "$FINAL_DESTINATION"; fi - if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi - ;; - FILE_ZIP ) - __uncompress "$URI" "$FINAL_DESTINATION" "$_STRIP" - if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi - ;; - * ) - __log "ERROR" "Unknow protocol ${PROTOCOL}" - ;; - esac + case ${PROTOCOL} in + # TODO + HOMEBREW_BOTTLE) + if [ "$_opt_get" = "ON" ]; then __download_uncompress_homebrew_bottle "$URI" "$_download_filename" "$FINAL_DESTINATION" "$_STRIP"; fi + if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi + ;; + HTTP_ZIP ) + if [ "$_opt_get" = "ON" ]; then __download_uncompress "$URI" "$_download_filename" "$FINAL_DESTINATION" "$_STRIP"; fi + if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi + ;; + HTTP ) + # HTTP protocol use always merge by default : because it never erase destination folder + # but the 'merged' flag file will be created only if we pass the option MERGE + if [ "$_opt_get" = "ON" ]; then __download "$URI" "$_download_filename" "$FINAL_DESTINATION"; fi + if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi + ;; + HG ) + if [ "$_opt_revert" = "ON" ]; then cd "$FINAL_DESTINATION"; hg revert --all -C; fi + if [ "$_opt_update" = "ON" ]; then cd "$FINAL_DESTINATION"; hg pull; hg update $_checkout_version; fi + if [ "$_opt_get" = "ON" ]; then hg clone $URI "$FINAL_DESTINATION"; if [ ! "$_checkout_version" = "" ]; then cd "$FINAL_DESTINATION"; hg update $_checkout_version; fi; fi + # [ "$_opt_merge" = "ON" ] && echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME" + ;; + GIT ) + __require "git" "git" "SYSTEM" + if [ "$_opt_revert" = "ON" ]; then cd "$FINAL_DESTINATION"; git reset --hard; fi + if [ "$_opt_update" = "ON" ]; then cd "$FINAL_DESTINATION"; git pull;if [ ! "$_checkout_version" = "" ]; then git checkout $_checkout_version; fi; fi + if [ "$_opt_get" = "ON" ]; then git clone --recursive $URI "$FINAL_DESTINATION"; if [ ! "$_checkout_version" = "" ]; then cd "$FINAL_DESTINATION"; git checkout $_checkout_version; fi; fi + # [ "$_opt_merge" = "ON" ] && echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME" + ;; + FILE ) + if [ "$_opt_get" = "ON" ]; then __copy_folder_content_into "$URI" "$FINAL_DESTINATION"; fi + if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi + ;; + FILE_ZIP ) + __uncompress "$URI" "$FINAL_DESTINATION" "$_STRIP" + if [ "$_opt_merge" = "ON" ]; then echo 1 > "$FINAL_DESTINATION/._MERGED_$NAME"; fi + ;; + * ) + __log "ERROR" "Unknow protocol ${PROTOCOL}" + ;; + esac fi + } # DOWNLOAD AND ZIP FUNCTIONS--------------------------------------------------- @@ -2755,13 +2756,18 @@ __download_uncompress_homebrew_bottle() { arm) arch="arm64" ;; + *) + __log "ERROR" "Unsupported architecture for Homebrew bottle (${STELLA_CURRENT_CPU_FAMILY})" + exit 1 + ;; esac if [ "${FILE_NAME}" = "_AUTO_" ]; then - #OUT="${FORMULA}-${VERSION}.${OS}_${ARCH}.bottle.tar.gz" - $STELLA_ARTEFACT/homebrew_get_bottle.sh -n $FORMULA -o "${STELLA_CURRENT_PLATFORM}" -a "${arch}" -d "${STELLA_APP_CACHE_DIR}" + "$STELLA_ARTEFACT/homebrew-get-bottle.sh" -n "$FORMULA" -o "${STELLA_CURRENT_PLATFORM}" -a "${arch}" -d "${STELLA_APP_CACHE_DIR}" + FILE_NAME=$(find "$STELLA_APP_CACHE_DIR" -maxdepth 1 -type f -name "${FORMULA}-*.bottle.tar.gz" | head -n 1) + FILE_NAME=${FILE_NAME##*/} else - $STELLA_ARTEFACT/homebrew_get_bottle.sh -n $FORMULA -f "${FILE_NAME}" + "$STELLA_ARTEFACT/homebrew-get-bottle.sh" -n "$FORMULA" -o "${STELLA_CURRENT_PLATFORM}" -a "${arch}" -d "${STELLA_APP_CACHE_DIR}" -f "${FILE_NAME}" fi if [ -f "$STELLA_APP_CACHE_DIR/$FILE_NAME" ]; then __uncompress "$STELLA_APP_CACHE_DIR/$FILE_NAME" "$UNZIP_DIR" "$OPT" diff --git a/nix/pool/feature-recipe/exp/feature_libsoundio-homebrew.sh b/nix/pool/feature-recipe/exp/feature_libsoundio-homebrew.sh index e953d70..b1ef1a1 100644 --- a/nix/pool/feature-recipe/exp/feature_libsoundio-homebrew.sh +++ b/nix/pool/feature-recipe/exp/feature_libsoundio-homebrew.sh @@ -1,8 +1,6 @@ -if [ ! "$_LIBSOUNDIO-HOMEBREW_INCLUDED_" = "1" ]; then -_LIBSOUNDIO-HOMEBREW_INCLUDED_=1 +if [ ! "$_LIBSOUNDIO_HOMEBREW_INCLUDED_" = "1" ]; then +_LIBSOUNDIO_HOMEBREW_INCLUDED_=1 -# TODO -# ./nix/pool/artefact/homebrew-get-bottle.sh -n libsoundio --list feature_libsoundio-homebrew() { FEAT_NAME="libsoundio-homebrew" FEAT_LIST_SCHEMA="latest:binary" @@ -14,41 +12,24 @@ feature_libsoundio-homebrew() { feature_libsoundio-homebrew_latest() { FEAT_VERSION="latest" - if [ "$STELLA_CURRENT_PLATFORM" = "darwin" ]; then - if [ "$STELLA_CURRENT_CPU_FAMILY" = "intel" ]; then - FEAT_BINARY_URL_x64="" - FEAT_BINARY_URL_FILENAME_x64="libsoundio-homebrew-macos-amd64-${FEAT_VERSION}.zip" - FEAT_BINARY_URL_PROTOCOL_x64="HOMEBREW_BOTTLE" - fi - if [ "$STELLA_CURRENT_CPU_FAMILY" = "arm" ]; then - FEAT_BINARY_URL_x64="https://github.com/fathyb/libsoundio-homebrew/releases/download/v0.0.3/libsoundio-homebrew.macos-arm64.zip" - FEAT_BINARY_URL_FILENAME_x64="libsoundio-homebrew-macos-arm64-${FEAT_VERSION}.zip" - FEAT_BINARY_URL_PROTOCOL_x64="HTTP_ZIP" - fi - fi - if [ "$STELLA_CURRENT_PLATFORM" = "linux" ]; then - if [ "$STELLA_CURRENT_CPU_FAMILY" = "intel" ]; then - FEAT_BINARY_URL_x64="https://github.com/fathyb/libsoundio-homebrew/releases/download/v0.0.3/libsoundio-homebrew.linux-amd64.zip" - FEAT_BINARY_URL_FILENAME_x64="libsoundio-homebrew-linux-amd64-${FEAT_VERSION}.zip" - FEAT_BINARY_URL_PROTOCOL_x64="HTTP_ZIP" - fi - if [ "$STELLA_CURRENT_CPU_FAMILY" = "arm" ]; then - FEAT_BINARY_URL_x64="https://github.com/fathyb/libsoundio-homebrew/releases/download/v0.0.3/libsoundio-homebrew.linux-arm64.zip" - FEAT_BINARY_URL_FILENAME_x64="libsoundio-homebrew-linux-arm64-${FEAT_VERSION}.zip" - FEAT_BINARY_URL_PROTOCOL_x64="HTTP_ZIP" - fi + if [ "$STELLA_CPU_ARCH" = "64" ]; then + FEAT_BINARY_URL_x64="libsoundio" + FEAT_BINARY_URL_FILENAME_x64="_AUTO_" + FEAT_BINARY_URL_PROTOCOL_x64="HOMEBREW_BOTTLE" fi - FEAT_INSTALL_TEST="$FEAT_INSTALL_ROOT/libsoundio-homebrew" - FEAT_SEARCH_PATH="$FEAT_INSTALL_ROOT" + FEAT_INSTALL_TEST="$FEAT_INSTALL_ROOT/lib/pkgconfig/libsoundio.pc" + FEAT_SEARCH_PATH="$FEAT_INSTALL_ROOT/bin:$FEAT_INSTALL_ROOT/lib" } feature_libsoundio-homebrew_install_binary() { __get_resource "$FEAT_NAME" "$FEAT_BINARY_URL" "$FEAT_BINARY_URL_PROTOCOL" "$FEAT_INSTALL_ROOT" "DEST_ERASE STRIP FORCE_NAME $FEAT_BINARY_URL_FILENAME" - - if [ -f "${FEAT_INSTALL_ROOT}/${FEAT_BINARY_URL_FILENAME}" ]; then - mv "${FEAT_INSTALL_ROOT}/${FEAT_BINARY_URL_FILENAME}" "${FEAT_INSTALL_ROOT}/libsoundio-homebrew" - chmod +x "${FEAT_INSTALL_ROOT}/libsoundio-homebrew" + + local _bottle_payload + _bottle_payload=$(find "$FEAT_INSTALL_ROOT" -mindepth 1 -maxdepth 1 -type d | head -n 1) + if [ ! "$_bottle_payload" = "" ] && [ ! "$_bottle_payload" = "$FEAT_INSTALL_ROOT" ]; then + __copy_folder_content_into "$_bottle_payload" "$FEAT_INSTALL_ROOT" + __del_folder "$_bottle_payload" fi }