mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-27 16:58:09 +01:00
Add files via upload
This commit is contained in:
parent
2a274c31c9
commit
9bf6f8c67a
646
CloverPackage/package/buildme
Normal file
646
CloverPackage/package/buildme
Normal file
@ -0,0 +1,646 @@
|
||||
#!/bin/bash
|
||||
|
||||
# created by vector sigma on July 15 2019
|
||||
# github version
|
||||
|
||||
# Linux users should be able to use this wrapper, although the following are needed:
|
||||
# (Ubuntu alike)
|
||||
# sudo apt-get install build-essential uuid-dev iasl git gcc-10 nasm python3-distutils
|
||||
|
||||
# $1 argument override MYTOOLCHAIN variable, in case you want GCC53 for example
|
||||
|
||||
# ====== COLORS ======
|
||||
COL_BLACK="\x1b[30;01m"
|
||||
COL_RED="\x1b[31;01m"
|
||||
COL_GREEN="\x1b[32;01m"
|
||||
COL_YELLOW="\x1b[33;01m"
|
||||
COL_MAGENTA="\x1b[35;01m"
|
||||
COL_CYAN="\x1b[36;01m"
|
||||
COL_WHITE="\x1b[37;01m"
|
||||
COL_BLUE="\x1b[34;01m"
|
||||
COL_RESET="\x1b[39;49;00m"
|
||||
|
||||
cd "$(dirname $([ -L $0 ] && readlink $0 || echo $0))"
|
||||
declare -r CLOVERROOT="$PWD"
|
||||
declare -r SYSNAME="$(uname)"
|
||||
MYTOOLCHAIN=${1:-GCC53}
|
||||
|
||||
# Functions
|
||||
pathmunge() {
|
||||
if [[ ! $PATH =~ (^|:)$1(:|$) ]]; then
|
||||
if [[ "${2:-}" = "after" ]]; then
|
||||
export PATH=$PATH:$1
|
||||
else
|
||||
export PATH=$1:$PATH
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
checkXCODE() {
|
||||
echo "[CHECK XCODE]"
|
||||
if [[ ! -x /usr/bin/xcodebuild ]]; then
|
||||
echo "ERROR: Install Xcode Tools from Apple before using this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -d "$(xcode-select --print-path)" ]]; then
|
||||
echo "ERROR: Xcode Command Line Tools not selected:"
|
||||
echo " open Xcode.app and go in Preferences->Locations,"
|
||||
echo " and select the Command Line Tools"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
checkGETTEXT() {
|
||||
exportPaths
|
||||
local locations=($(which msgmerge))
|
||||
if [ "${#locations[@]}" -eq 0 ]; then
|
||||
export GETTEXT_PREFIX="${TOOLCHAIN_DIR}"
|
||||
"${CLOVERROOT}"/buildgettext.sh
|
||||
else
|
||||
# export gettex prefix to ensure buildpkg.sh will use it
|
||||
# without the need to install it again
|
||||
export GETTEXT_PREFIX="$(dirname "${locations[0]}")"
|
||||
fi
|
||||
}
|
||||
|
||||
exportPaths() {
|
||||
if [[ "$SYSNAME" == Linux ]]; then
|
||||
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr}
|
||||
elif [[ "$SYSNAME" == Darwin ]]; then
|
||||
pathmunge "$(xcode-select --print-path)"/usr/bin
|
||||
if [[ -d ~/src/opt/local ]]; then
|
||||
TOOLCHAIN_DIR=~/src/opt/local
|
||||
else
|
||||
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/toolchain}
|
||||
fi
|
||||
fi
|
||||
|
||||
pathmunge "$TOOLCHAIN_DIR"/bin
|
||||
export TOOLCHAIN_DIR=$TOOLCHAIN_DIR
|
||||
export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT"/toolchain}
|
||||
export DIR_TOOLS=${DIR_TOOLS:-$DIR_MAIN/tools}
|
||||
export DIR_DOWNLOADS=${DIR_DOWNLOADS:-$DIR_TOOLS/download}
|
||||
export DIR_LOGS=${DIR_LOGS:-$DIR_TOOLS/logs}
|
||||
export PREFIX=${TOOLCHAIN_DIR}
|
||||
}
|
||||
|
||||
checkTools() {
|
||||
# export any env vars before building anything
|
||||
if [[ "$SYSNAME" == Darwin ]]; then
|
||||
checkXCODE
|
||||
exportPaths
|
||||
local GCC53_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc"
|
||||
if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC53_BIN}" ]]; then
|
||||
if [[ $MYTOOLCHAIN == GCC53 ]]; then
|
||||
cd "${CLOVERROOT}"
|
||||
./build_gcc10.sh
|
||||
else
|
||||
MYTOOLCHAIN=XCODE8
|
||||
fi
|
||||
fi
|
||||
else
|
||||
exportPaths
|
||||
fi
|
||||
}
|
||||
|
||||
updateClover() {
|
||||
echo "[UPDATE CLOVER]"
|
||||
cd "${CLOVERROOT}"
|
||||
if [[ -d .git ]]; then
|
||||
git fetch --all --recurse-submodules
|
||||
git pull --recurse-submodules origin master
|
||||
else
|
||||
echo "Error: this is not a git repository, can't update!"
|
||||
fi
|
||||
}
|
||||
|
||||
updateResetClover() {
|
||||
echo "[UPDATE RESET CLOVER]"
|
||||
cd "${CLOVERROOT}"
|
||||
if [[ -d .git ]]; then
|
||||
git fetch --all --recurse-submodules
|
||||
git submodule foreach --recursive git clean -d -f -f
|
||||
git clean -d -f -f
|
||||
git submodule foreach --recursive git reset --hard origin/master
|
||||
git reset --hard origin/master
|
||||
git pull --recurse-submodules origin master
|
||||
else
|
||||
echo "Error: this is not a git repository, can't update!"
|
||||
fi
|
||||
}
|
||||
|
||||
buildCloverHFSPlus() {
|
||||
if [[ -f "${CLOVERROOT}"/FileSystems/HFSPlus/X64/HFSPlus.efi ]]; then
|
||||
echo "building Clover with HFSPlus"
|
||||
buildClover HFSPlus
|
||||
else
|
||||
echo "${CLOVERROOT}/FileSystems/HFSPlus/X64/HFSPlus.efi: no such file!"
|
||||
sleep 3
|
||||
menu
|
||||
fi
|
||||
}
|
||||
|
||||
buildCCPV() {
|
||||
revision=r$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
if [[ -d "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator ]]; then
|
||||
rm -Rf "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator
|
||||
fi
|
||||
mkdir -p "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator
|
||||
cd "${CLOVERROOT}"/Xcode/CloverConfigPlistValidator
|
||||
xcodebuild -project ./CloverConfigPlistValidator.xcodeproj -quiet CONFIGURATION_BUILD_DIR="${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator
|
||||
mv -f "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator/CloverConfigPlistValidator "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator/ccpv
|
||||
rm -r "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator/*.dSYM
|
||||
}
|
||||
|
||||
BLC() {
|
||||
if [[ ! -d "${CLOVERROOT}"/CloverPackage/BootLoaderChooser ]]; then
|
||||
mkdir -p "${CLOVERROOT}"/CloverPackage/BootLoaderChooser
|
||||
fi
|
||||
curl -sLq https://github.com/jief666/BootloaderChooser/releases/download/0.5/BootX64.efi > "${CLOVERROOT}"/CloverPackage/BootLoaderChooser/BootX64.efi
|
||||
chmod 775 "${CLOVERROOT}"/CloverPackage/BootLoaderChooser/BootX64.efi
|
||||
#open "${CLOVERROOT}"/CloverPackage/BootLoaderChooser
|
||||
}
|
||||
|
||||
buildClover() {
|
||||
checkTools
|
||||
|
||||
# to force recreation of the Conf folder. You can still use a custom CONF_PATH if you don't want recreation.
|
||||
rm -rf "$CLOVERROOT"/Conf
|
||||
mkdir "$CLOVERROOT"/Conf
|
||||
|
||||
cd "${CLOVERROOT}"
|
||||
if [[ -z "$WORKSPACE" ]]; then
|
||||
export EDK_TOOLS_PATH="${PWD}"/BaseTools
|
||||
set +u
|
||||
source ./edksetup.sh BaseTools
|
||||
set -u
|
||||
cd "$CLOVERROOT"
|
||||
WORKSPACE="${PWD}"
|
||||
fi
|
||||
|
||||
echo "[BUILD CLOVER]"
|
||||
# Run a custom build script if exist (~/src/tools/Scripts/build.sh)
|
||||
# This allow the user to run ebuild.sh with own parameters
|
||||
if [[ -x "${DIR_TOOLS}"/Scripts/build.sh ]]; then
|
||||
echo "Running custom build script"
|
||||
"${DIR_TOOLS}"/Scripts/build.sh "${CLOVERROOT}" $MYTOOLCHAIN
|
||||
else
|
||||
local parameter=${1:-none}
|
||||
if [[ "${parameter}" == HFSPlus ]]; then
|
||||
./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $MYTOOLCHAIN
|
||||
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D USE_APPLE_HFSPLUS_DRIVER -t $MYTOOLCHAIN
|
||||
else
|
||||
./ebuild.sh -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED -t $MYTOOLCHAIN
|
||||
./ebuild.sh -fr -D NO_GRUB_DRIVERS_EMBEDDED -D LESS_DEBUG -t $MYTOOLCHAIN
|
||||
fi
|
||||
fi
|
||||
|
||||
# Run a post build script if exist (~/src/tools/Scripts/postbuild.sh)
|
||||
if [[ -x "${DIR_TOOLS}"/Scripts/postbuild.sh ]]; then
|
||||
echo "Running postbuild script"
|
||||
"${DIR_TOOLS}"/Scripts/postbuild.sh "${CLOVERROOT}" $MYTOOLCHAIN
|
||||
fi
|
||||
}
|
||||
|
||||
buildCloverTest() {
|
||||
checkTools
|
||||
|
||||
cd "${CLOVERROOT}"
|
||||
|
||||
if [[ -z "$WORKSPACE" ]]; then
|
||||
export EDK_TOOLS_PATH="${PWD}"/BaseTools
|
||||
set +u
|
||||
source ./edksetup.sh BaseTools
|
||||
set -u
|
||||
cd "$CLOVERROOT"
|
||||
WORKSPACE="${PWD}"
|
||||
fi
|
||||
|
||||
echo "[BUILD CLOVER TEST]"
|
||||
./ebuild.sh -nb -t $MYTOOLCHAIN
|
||||
}
|
||||
|
||||
buildPkg() {
|
||||
if [[ "$SYSNAME" == Darwin ]]; then
|
||||
cd "${CLOVERROOT}"/CloverPackage
|
||||
echo "[BUILD PKG]"
|
||||
checkXCODE
|
||||
checkGETTEXT
|
||||
make pkg
|
||||
else
|
||||
echo && echo "can't build pkg on a non Darwin OS!"
|
||||
fi
|
||||
}
|
||||
|
||||
buildApp() {
|
||||
local withClover=${1-"none"}
|
||||
if [[ "$SYSNAME" == Darwin ]]; then
|
||||
if [[ -f "${CLOVERROOT}"/CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi ]]; then
|
||||
rm -f "${CLOVERROOT}"/CloverPackage/sym/.withV2
|
||||
mkdir -p "${CLOVERROOT}"/CloverPackage/sym
|
||||
if [[ $withClover == withV2 ]]; then
|
||||
touch "${CLOVERROOT}"/CloverPackage/sym/.withV2
|
||||
fi
|
||||
cd "${CLOVERROOT}"/CloverApp
|
||||
echo "[BUILD APP]"
|
||||
checkXCODE
|
||||
make
|
||||
else
|
||||
echo && echo "please, build Clover first!"
|
||||
sleep 3
|
||||
fi
|
||||
else
|
||||
echo && echo "Clover.app can only be built in macOS!"
|
||||
fi
|
||||
}
|
||||
|
||||
buildIso() {
|
||||
cd "${CLOVERROOT}"/CloverPackage
|
||||
echo "[BUILD ISO]"
|
||||
make iso
|
||||
}
|
||||
|
||||
checkStatus() {
|
||||
cd "${CLOVERROOT}"
|
||||
if [[ -d .git ]]; then
|
||||
git fetch --recurse-submodules origin
|
||||
git log -n 1
|
||||
git status
|
||||
git submodule foreach --recursive "git log -n 1 && git status"
|
||||
else
|
||||
echo "Error: this is not a git repository, can't get info!"
|
||||
fi
|
||||
}
|
||||
|
||||
showdiff() {
|
||||
cd "${CLOVERROOT}"
|
||||
if [[ -d .git ]]; then
|
||||
git fetch --recurse-submodules origin
|
||||
git diff
|
||||
else
|
||||
echo "Error: this is not a git repository, can't get info!"
|
||||
fi
|
||||
}
|
||||
|
||||
cleanBaseTools() {
|
||||
cd "${CLOVERROOT}"/BaseTools
|
||||
make clean
|
||||
}
|
||||
|
||||
## Utilities
|
||||
buildCPV() {
|
||||
revision=r$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
if [[ -d "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator ]]; then
|
||||
rm -Rf "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator
|
||||
fi
|
||||
mkdir -p "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator
|
||||
cd "${CLOVERROOT}"/Xcode/CloverConfigPlistValidator
|
||||
xcodebuild -project ./CloverConfigPlistValidator.xcodeproj -quiet CONFIGURATION_BUILD_DIR="${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator
|
||||
mv -f "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator/CloverConfigPlistValidator "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator/CloverConfigPlistValidator_${revision}
|
||||
rm -r "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator/*.dSYM
|
||||
open "${CLOVERROOT}"/CloverPackage/CloverConfigPlistValidator
|
||||
}
|
||||
|
||||
PlistEDPlus() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && curl -qsSLk https://github.com/ic005k/PlistEDPlus/releases/download/1.0.52/PlistEDPlus_Mac.dmg > PlistEDPlus_Mac.dmg
|
||||
hdiutil attach -quiet -noverify -nobrowse PlistEDPlus_Mac.dmg && cp -Rf /Volumes/bin\:release\:PlistEDPlus/PlistEDPlus.app $HOME/Desktop/ClovUtils
|
||||
hdiutil detach -force /Volumes/bin\:release\:PlistEDPlus
|
||||
rm -r $HOME/Desktop/ClovUtils/PlistEDPlus_Mac.dmg && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
Hackintool() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && curl -sLq https://github.com/headkaze/Hackintool/releases/download/3.5.2/Hackintool.zip -o Hackintool.zip
|
||||
unzip -q Hackintool.zip && rm -r Hackintool.zip && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
BitmaskDecode() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/corpnewt/BitmaskDecode && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
MaciASL() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && curl -sLq https://github.com/acidanthera/MaciASL/releases/download/1.6.1/MaciASL-1.6.1-RELEASE.dmg > MaciASL-1.6.1-RELEASE.dmg
|
||||
hdiutil attach -quiet -noverify -nobrowse MaciASL-1.6.1-RELEASE.dmg && cp -Rf /Volumes/MaciASL/MaciASL.app $HOME/Desktop/ClovUtils
|
||||
hdiutil detach -force /Volumes/MaciASL
|
||||
rm -r $HOME/Desktop/ClovUtils/MaciASL-1.6.1-RELEASE.dmg && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
dmidecode() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils/dmidecode
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/acidanthera/dmidecode dmi-decode && xcodebuild -project ./dmi-decode/dmidecode.xcodeproj -quiet
|
||||
cp -r dmi-decode/dmidecode $HOME/Desktop/ClovUtils/dmidecode && rm -Rf $HOME/Desktop/ClovUtils/dmi-decode && open $HOME/Desktop/ClovUtils
|
||||
|
||||
}
|
||||
|
||||
Get-IOReg-Devices() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/LAbyOne/Get-IOReg-Devices
|
||||
mv -f Get-IOReg-Devices/Get\ IOReg\ Devices $HOME/Desktop/ClovUtils/Get\ IOReg-Devices && chmod a+x $HOME/Desktop/ClovUtils/Get\ IOReg-Devices/*.command
|
||||
rm -rf Get-IOReg-Devices && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
NDBrightness () {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/KAMIKAZEUA/NativeDisplayBrightness NDBrightness
|
||||
xcodebuild -project ./NDBrightness/NativeDisplayBrightness.xcodeproj -quiet -configuration Release clean build ARCHS=x86_64 ONLY_ACTIVE_ARCH=YES CONFIGURATION_BUILD_DIR=$HOME/Desktop/ClovUtils
|
||||
rm -Rf $HOME/Desktop/ClovUtils/NDBrightness && rm -r $HOME/Desktop/ClovUtils/*.dSYM && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
SSDTTime() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/corpnewt/SSDTTime && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
USBMap() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/corpnewt/USBMap
|
||||
open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
QtiASL() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && curl -sLq https://github.com/ic005k/QtiASL/releases/download/1.0.60/QtiASL_Mac.dmg > QtiASL_Mac.dmg
|
||||
hdiutil attach -quiet -noverify -nobrowse QtiASL_Mac.dmg && cp -Rf /Volumes/bin\:release\:QtiASL/QtiASL.app $HOME/Desktop/ClovUtils
|
||||
hdiutil detach -force /Volumes/bin\:release\:QtiASL
|
||||
rm -r $HOME/Desktop/ClovUtils/QtiASL_Mac.dmg && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
CsrDecode() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils/CsrDecode
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/corpnewt/CsrDecode && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
gibMacOS() {
|
||||
if [[ ! -d $HOME/Desktop/ClovUtils ]]; then
|
||||
mkdir -p $HOME/Desktop/ClovUtils
|
||||
fi
|
||||
cd $HOME/Desktop/ClovUtils && git clone -q https://github.com/corpnewt/gibMacOS && open $HOME/Desktop/ClovUtils
|
||||
}
|
||||
|
||||
Utilities() {
|
||||
echo
|
||||
echo -e $COL_GREEN"-----------------------------------------------------------"$COL_RESET
|
||||
cd "${CLOVERROOT}"
|
||||
local lsha1="not a git repo"
|
||||
if [[ -d .git ]]; then
|
||||
lsha1=$(git rev-parse --short HEAD)
|
||||
fi
|
||||
echo -e " 🍀$COL_GREEN Clover r$(git describe --tags $(git rev-list --tags --max-count=1))$COL_WHITE (SHA: $lsha1)"$COL_RESET
|
||||
echo -e $COL_CYAN" $COL_CYAN Utilities "$COL_RESET
|
||||
echo -e $COL_GREEN"-----------------------------------------------------------"$COL_RESET
|
||||
echo && echo
|
||||
echo && echo
|
||||
echo && echo
|
||||
echo && echo
|
||||
echo && echo
|
||||
|
||||
PS3='
|
||||
Files will be put on Desktop/ClovUtils: '
|
||||
options=( 'Get CloverConfigPlistValidator'
|
||||
'Get PlistEDPlus'
|
||||
'Get Hackintool'
|
||||
'Get BitmaskDecode'
|
||||
'Get MaciASL'
|
||||
'Get dmidecode'
|
||||
'Get IOReg-Devices'
|
||||
'Get NativeDisplayBrightness'
|
||||
'Get SSDTTime'
|
||||
'Get USBMap'
|
||||
'Get QtiASL'
|
||||
'Get CsrDecode'
|
||||
'Get gibMacOS'
|
||||
'back to main')
|
||||
select opt in "${options[@]}"
|
||||
do
|
||||
case $opt in
|
||||
"Get CloverConfigPlistValidator")
|
||||
buildCPV
|
||||
break
|
||||
;;
|
||||
"Get PlistEDPlus")
|
||||
PlistEDPlus
|
||||
break
|
||||
;;
|
||||
"Get Hackintool")
|
||||
Hackintool
|
||||
break
|
||||
;;
|
||||
"Get BitmaskDecode")
|
||||
BitmaskDecode
|
||||
break
|
||||
;;
|
||||
"Get MaciASL")
|
||||
MaciASL
|
||||
break
|
||||
;;
|
||||
"Get dmidecode")
|
||||
dmidecode
|
||||
break
|
||||
;;
|
||||
"Get IOReg-Devices")
|
||||
Get-IOReg-Devices
|
||||
break
|
||||
;;
|
||||
"Get NativeDisplayBrightness")
|
||||
NDBrightness
|
||||
break
|
||||
;;
|
||||
"Get SSDTTime")
|
||||
SSDTTime
|
||||
break
|
||||
;;
|
||||
"Get USBMap")
|
||||
USBMap
|
||||
break
|
||||
;;
|
||||
"Get QtiASL")
|
||||
QtiASL
|
||||
break
|
||||
;;
|
||||
"Get CsrDecode")
|
||||
CsrDecode
|
||||
break
|
||||
;;
|
||||
"Get gibMacOS")
|
||||
gibMacOS
|
||||
break
|
||||
;;
|
||||
"back to main")
|
||||
menu
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo "invalid option $REPLY"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
Utilities
|
||||
}
|
||||
|
||||
menu() {
|
||||
echo
|
||||
echo -e $COL_GREEN"-----------------------------------------------------------"$COL_RESET
|
||||
cd "${CLOVERROOT}"
|
||||
|
||||
local lsha1="not a git repo"
|
||||
|
||||
if [[ -d .git ]]; then
|
||||
lsha1=$(git rev-parse --short HEAD)
|
||||
fi
|
||||
|
||||
echo -e " 🍀$COL_GREEN Clover r$(git describe --tags $(git rev-list --tags --max-count=1))$COL_WHITE (SHA: $lsha1)"$COL_RESET
|
||||
echo -e "$COL_CYAN TOOLCHAIN: $MYTOOLCHAIN (override example: './buildme XCODE8')"
|
||||
echo -e $COL_GREEN"-----------------------------------------------------------"$COL_RESET
|
||||
echo
|
||||
PS3='
|
||||
Please enter your choice: '
|
||||
options=( 'build Clover'
|
||||
'build Clover with HFSPlus'
|
||||
'make pkg'
|
||||
'make app'
|
||||
'make app (with Clover)'
|
||||
'make iso'
|
||||
'build all'
|
||||
'test build (no autogen, no boot files)'
|
||||
'status'
|
||||
'update Clover'
|
||||
'show diff'
|
||||
'open CloverV2/EFI/CLOVER directory'
|
||||
'update Clover (reset changes)'
|
||||
'clean BaseTools'
|
||||
'Utilities'
|
||||
'quit')
|
||||
|
||||
select opt in "${options[@]}"
|
||||
do
|
||||
case $opt in
|
||||
"build Clover")
|
||||
buildClover
|
||||
break
|
||||
;;
|
||||
"build Clover with HFSPlus")
|
||||
buildCloverHFSPlus
|
||||
break
|
||||
;;
|
||||
"make pkg")
|
||||
buildCCPV
|
||||
BLC
|
||||
buildPkg
|
||||
break
|
||||
;;
|
||||
"make app")
|
||||
buildApp
|
||||
break
|
||||
;;
|
||||
"make app (with Clover)")
|
||||
buildApp withV2
|
||||
break
|
||||
;;
|
||||
"make iso")
|
||||
buildIso
|
||||
break
|
||||
;;
|
||||
"build all")
|
||||
buildCCPV
|
||||
BLC
|
||||
buildClover
|
||||
buildPkg
|
||||
buildIso
|
||||
buildApp
|
||||
break
|
||||
;;
|
||||
"test build (no autogen, no boot files)")
|
||||
buildCloverTest
|
||||
break
|
||||
;;
|
||||
"update Clover")
|
||||
updateClover
|
||||
break
|
||||
;;
|
||||
"update Clover (reset changes)")
|
||||
read -p "Are you sure? (type y to confirm or any other to negate) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
updateResetClover
|
||||
fi
|
||||
break
|
||||
;;
|
||||
"status")
|
||||
checkStatus
|
||||
break
|
||||
;;
|
||||
"show diff")
|
||||
showdiff
|
||||
break
|
||||
;;
|
||||
"open CloverV2/EFI/CLOVER directory")
|
||||
if [[ -d "${CLOVERROOT}"/CloverPackage/CloverV2/EFI/CLOVER ]]; then
|
||||
open "${CLOVERROOT}"/CloverPackage/CloverV2/EFI/CLOVER
|
||||
else
|
||||
echo && echo "Directory not found. Compile Clover first!!"
|
||||
sleep 2
|
||||
fi
|
||||
break
|
||||
;;
|
||||
"clean BaseTools")
|
||||
read -p "Are you sure? (type y to confirm or any other to negate) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
cleanBaseTools
|
||||
fi
|
||||
break
|
||||
;;
|
||||
"Utilities")
|
||||
Utilities
|
||||
break
|
||||
;;
|
||||
"quit")
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "invalid option $REPLY"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
menu
|
||||
}
|
||||
|
||||
# Main
|
||||
set -e
|
||||
if [[ "$2" == ci ]]; then
|
||||
buildClover
|
||||
buildPkg
|
||||
buildIso
|
||||
buildApp
|
||||
buildCPV
|
||||
else
|
||||
menu
|
||||
fi
|
Loading…
Reference in New Issue
Block a user