download-latest-foundation.sh
1.1 KB
#!/usr/bin/env bash
set -e
# pro tip: maybe don't run this script. i mostly just hacked my way through this. this should definitely not be automated in any way.
# thx u https://explainshell.com/
# YOINK! https://stackoverflow.com/a/4774063
SCRIPTS_DIR="$(cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
TEMP_DIR="${SCRIPTS_DIR}/.temp"
FOUNDATION_DIR="${SCRIPTS_DIR}/../src/Illuminate/Foundation/"
LARAVEL_VERSION="${1:-"$(curl --silent "https://api.github.com/repos/laravel/framework/tags" | jq -r '.[].name' | sort | tail -1)"}"
ARCHIVE_FILE="${LARAVEL_VERSION}.tar.gz"
rm -rf "${TEMP_DIR}"
mkdir -p "${TEMP_DIR}"
wget -q "https://github.com/laravel/framework/archive/${ARCHIVE_FILE}" -O "${TEMP_DIR}/${ARCHIVE_FILE}"
ROOT_FOLDER=$(tar ztf "${TEMP_DIR}/${ARCHIVE_FILE}" | sort | head -1)
pushd "${TEMP_DIR}"
# only extracts the Foundation folder
tar xzf "${TEMP_DIR}/${ARCHIVE_FILE}" "${ROOT_FOLDER}src/Illuminate/Foundation" --strip-components=4 --one-top-level=Foundation
popd
rm -rf "${FOUNDATION_DIR}"
mkdir -p "${FOUNDATION_DIR}"
rsync -a "${TEMP_DIR}/Foundation/" "${FOUNDATION_DIR}"
rm -rf "${TEMP_DIR}"