mirror of
https://github.com/rxrbln/t2sde.git
synced 2025-05-08 20:21:59 +08:00
85 lines
2.8 KiB
Bash
Executable File
85 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# --- T2-COPYRIGHT-NOTE-BEGIN ---
|
|
# T2 SDE: t2
|
|
# Copyright (C) 2023 - 2024 The T2 SDE Project
|
|
#
|
|
# This Copyright note is generated by scripts/Create-CopyPatch,
|
|
# more information can be found in the files COPYING and README.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2.
|
|
# --- T2-COPYRIGHT-NOTE-END ---
|
|
|
|
top=$(readlink -f $0)
|
|
[ "$top" ] && cd ${top%/*}
|
|
|
|
declare -A commands
|
|
|
|
commands["bootstrap"]="bootstrap vital deps on homebrew systems"
|
|
commands["config"]="creates a target configuration profile"
|
|
commands["install"]="installs a package and its dependencies"
|
|
commands["uninstall"]="uninstalls a package from the system"
|
|
commands["download"]="downloads assets of a package"
|
|
commands["build"]="builds a package from source"
|
|
commands["build-target"]="builds a whole target sandbox"
|
|
commands["clean"]="clean-up build artifacts"
|
|
commands["create"]="create a package from external URLs"
|
|
commands["create-iso"]="create an ISO after a target build"
|
|
commands["list-errors"]="list build target errors"
|
|
commands["commit"]="commit changes to the T2 source tree"
|
|
commands["find"]="find package based on meta data"
|
|
commands["update"]="update a package meta-data version"
|
|
commands["upgrade"]="upgrade the system install packages"
|
|
commands["up|pull"]="update / pull t2 source tree changes"
|
|
|
|
usage() {
|
|
cat << EOT
|
|
Usage: t2 command <options>
|
|
Commands:
|
|
EOT
|
|
|
|
for i in "${!commands[@]}"; do
|
|
local desc=${commands[$i]}
|
|
local n=$((${#i} + 2))
|
|
local t="\t\t"
|
|
[ $n -gt 7 ] && t="\t"
|
|
echo -e " $i$t$desc"
|
|
done | sort
|
|
|
|
cat << EOT
|
|
Options:
|
|
-v, --verbose verbose operation
|
|
-c, --cfg config name
|
|
EOT
|
|
exit 1
|
|
}
|
|
|
|
# convert modern --* args to backward-compat single-dash -*
|
|
# and save the first non option as cmd
|
|
cmd=
|
|
declare -a args
|
|
for a; do
|
|
[[ -z "$cmd" && "$a" = [^-]* ]] && cmd="$a" && continue
|
|
args+=(${a/--/-})
|
|
done
|
|
|
|
case "$cmd" in
|
|
config) exec scripts/Config "${args[@]}" ;;
|
|
bootstrap) exec scripts/Bootstrap "${args[@]}" ;;
|
|
build) exec scripts/Build-Pkg "${args[@]}" ;;
|
|
build-target) exec scripts/Build-Target "${args[@]}" ;;
|
|
clean) exec scripts/Cleanup "${args[@]}" ;;
|
|
create) exec scripts/Create-Pkg "${args[@]}" ;;
|
|
create-iso) exec scripts/Create-ISO "${args[@]}" ;;
|
|
list-errors) exec scripts/Create-ErrList "${args[@]}" ;;
|
|
commit|ci) exec scripts/Commit "${args[@]}" ;;
|
|
download) exec scripts/Download "${args[@]}" ;;
|
|
find) exec scripts/Find-Pkg "${args[@]}" ;;
|
|
install) exec scripts/Emerge-Pkg "${args[@]}" ;;
|
|
update) exec scripts/Update-Pkg "${args[@]}" ;;
|
|
upgrade) exec scripts/Emerge-Pkg -system "${args[@]}" ;;
|
|
uninstall) exec mine -r "${args[@]}" ;;
|
|
up|pull) if [ -e .git ]; then exec git pull; else exec svn up; fi ;;
|
|
*) usage ;;
|
|
esac
|