t2sde/t2
René Rebe 52830e4b4f * support ./t2 inst for install, too
git-svn-id: https://svn.exactcode.de/t2/trunk@71909 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc
2024-11-22 16:33:30 +00:00

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|inst) 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