mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-07-11 02:16:39 +02:00
66b073ab8d
Composite PR for several changes to CPMUtil, most notably: - https://git.crueter.xyz/CMake/CPMUtil/pulls/19 - https://git.crueter.xyz/CMake/CPMUtil/pulls/22 - https://git.crueter.xyz/CMake/CPMUtil/pulls/24 - https://git.crueter.xyz/CMake/CPMUtil/pulls/25 These contain a lot of changes that generally simplify control flow and improve ease-of-use. Read those descriptions and patchsets for more info. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4130 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
85 lines
1.8 KiB
Bash
Executable File
85 lines
1.8 KiB
Bash
Executable File
#!/bin/sh -e
|
|
|
|
# SPDX-FileCopyrightText: Copyright 2026 crueter
|
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
RETURN=0
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage: cpmutil.sh package [command]
|
|
|
|
Operate on a package or packages.
|
|
|
|
Commands:
|
|
hash Verify the hash of a package, and update it if needed
|
|
update Check for updates for a package
|
|
fetch Fetch a package and place it in the cache
|
|
add Add a new package
|
|
rm Remove a package
|
|
version Change the version of a package
|
|
which Check if a package is defined
|
|
url Get the download URL for a package
|
|
dir Get the local directory for a package
|
|
reset Reset a fetched package to its original state
|
|
patch Add a patch to a package in the cpmfile
|
|
|
|
EOF
|
|
|
|
exit $RETURN
|
|
}
|
|
|
|
SCRIPTS=$(CDPATH='' cd -- "$(dirname -- "$0")/package" && pwd)
|
|
CMAKE="$CMAKE/package"
|
|
|
|
export SCRIPTS CMAKE
|
|
|
|
filter_args() {
|
|
print_usage=false
|
|
all_flag=false
|
|
commit_flag=false
|
|
filtered=""
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
-h | --help) print_usage=true ;;
|
|
-a | --all) all_flag=true ;;
|
|
-c | --commit) commit_flag=true ;;
|
|
-ac | -ca)
|
|
commit_flag=true
|
|
all_flag=true
|
|
;;
|
|
*) filtered="$filtered $arg" ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
while :; do
|
|
case "$1" in
|
|
dir | fetch | hash | reset | rm | url | version | which | update)
|
|
cmd="$1"
|
|
shift
|
|
|
|
filter_args "$@"
|
|
cmake_defines=""
|
|
|
|
if $print_usage; then cmake_defines="$cmake_defines -DPRINT_USAGE=TRUE"; fi
|
|
if $all_flag; then cmake_defines="$cmake_defines -DALL_PACKAGES=TRUE"; fi
|
|
if $commit_flag; then cmake_defines="$cmake_defines -DMAKE_COMMIT=TRUE"; fi
|
|
|
|
# shellcheck disable=SC2086
|
|
cmake $cmake_defines -P "$CMAKE/$cmd.cmake" -- $filtered
|
|
break
|
|
;;
|
|
add | patch)
|
|
cmd="$1"
|
|
shift
|
|
"$SCRIPTS/$cmd".sh "$@"
|
|
break
|
|
;;
|
|
*) usage ;;
|
|
esac
|
|
|
|
shift
|
|
done
|