install.sh: Implement flag parsing
This commit is contained in:
parent
be6f186ee0
commit
ca336e8fcf
2 changed files with 75 additions and 4 deletions
|
|
@ -13,7 +13,7 @@ help() {
|
|||
fi
|
||||
|
||||
cat <<EOF
|
||||
usage: $arg0 [--dryrun] [--version vX.X.X] [--edge] [--method detect] [--prefix ~/.local]
|
||||
usage: $arg0 [--dry-run] [--version vX.X.X] [--edge] [--method detect] [--prefix ~/.local]
|
||||
[--tala] [--tala-version vX.X.X] [--force] [--uninstall]
|
||||
|
||||
install.sh automates the installation of D2 onto your system. It currently only supports
|
||||
|
|
@ -22,15 +22,20 @@ source, build a release and install from it.
|
|||
|
||||
Flags:
|
||||
|
||||
--dryrun
|
||||
--dry-run
|
||||
Pass to have install.sh show the install method and flags that will be used to install
|
||||
without executing them. Very useful to understand what changes it will make to your system.
|
||||
|
||||
--version vX.X.X
|
||||
Pass to have install.sh install the given version instead of the latest version.
|
||||
note: currently unimplemented.
|
||||
|
||||
--edge
|
||||
Pass to build and install D2 from source.
|
||||
Pass to build and install D2 from source. This will still use --method if set to detect
|
||||
to install the release archive for your OS, whether it's apt, yum, brew or standalone
|
||||
if an unsupported package manager is used. To install from source like a dev would,
|
||||
use go install oss.terrastruct.com/d2
|
||||
note: currently unimplemented.
|
||||
|
||||
--method [detect | standalone]
|
||||
Pass to control the method by which to install. Right now we only support standalone
|
||||
|
|
@ -55,6 +60,7 @@ Flags:
|
|||
|
||||
--tala-version vX.X.X
|
||||
Install the passed version of tala instead of latest.
|
||||
note: currently unimplemented.
|
||||
|
||||
--force:
|
||||
Force installation over the existing version even if they match. It will attempt a clean
|
||||
|
|
@ -74,3 +80,68 @@ You can rerun install.sh to update your version of D2. install.sh will avoid rei
|
|||
if the installed version is the latest unless --force is passed.
|
||||
EOF
|
||||
}
|
||||
|
||||
main() {
|
||||
while :; do
|
||||
flag_parse "$@"
|
||||
case "$FLAG" in
|
||||
h|help)
|
||||
help
|
||||
return 0
|
||||
;;
|
||||
dry-run)
|
||||
flag_noarg && shift "$FLAGSHIFT"
|
||||
DRY_RUN=1
|
||||
;;
|
||||
version)
|
||||
flag_nonemptyarg && shift "$FLAGSHIFT"
|
||||
VERSION=$FLAGARG
|
||||
echoerr "$FLAGRAW is currently unimplemented"
|
||||
exit 1
|
||||
;;
|
||||
tala-version)
|
||||
flag_nonemptyarg && shift "$FLAGSHIFT"
|
||||
TALA_VERSION=$FLAGARG
|
||||
echoerr "$FLAGRAW is currently unimplemented"
|
||||
exit 1
|
||||
;;
|
||||
edge)
|
||||
flag_noarg && shift "$FLAGSHIFT"
|
||||
EDGE=1
|
||||
echoerr "$FLAGRAW is currently unimplemented"
|
||||
exit 1
|
||||
;;
|
||||
method)
|
||||
flag_nonemptyarg && shift "$FLAGSHIFT"
|
||||
METHOD=$FLAGARG
|
||||
echoerr "$FLAGRAW is currently unimplemented"
|
||||
exit 1
|
||||
;;
|
||||
prefix)
|
||||
flag_nonemptyarg && shift "$FLAGSHIFT"
|
||||
export PREFIX=$FLAGARG
|
||||
;;
|
||||
force)
|
||||
flag_noarg && shift "$FLAGSHIFT"
|
||||
FORCE=1
|
||||
;;
|
||||
uninstall)
|
||||
flag_noarg && shift "$FLAGSHIFT"
|
||||
UNINSTALL=1
|
||||
;;
|
||||
'')
|
||||
shift "$FLAGSHIFT"
|
||||
break
|
||||
;;
|
||||
*)
|
||||
flag_errusage "unrecognized flag $FLAGRAW"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
flag_errusage "no arguments are accepted"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
|
|
|||
2
ci/sub
2
ci/sub
|
|
@ -1 +1 @@
|
|||
Subproject commit 4f1fb95079b0ef0057db7ea65db5a1ca9f053dda
|
||||
Subproject commit 81e033b7702131e917a16396b44c20512d29029b
|
||||
Loading…
Reference in a new issue