aboutsummaryrefslogtreecommitdiff
path: root/contrib/cpt-reset
diff options
context:
space:
mode:
authormerakor <cem@ckyln.com>2022-02-02 11:57:14 +0000
committermerakor <cem@ckyln.com>2022-02-02 11:57:14 +0000
commit1464395938e2fe1ffc711bd3d10d27c0daf8986d (patch)
tree010953742bb1556feef131dc0485c4febedebf46 /contrib/cpt-reset
parentb65f41e4644c4e618535d2e50e9bb685ab7e5556 (diff)
parentfbc04171c1f8afc5e95ea736f1d4668141659d7f (diff)
downloadcpt-1464395938e2fe1ffc711bd3d10d27c0daf8986d.tar.gz
merge 6.2.3 release
FossilOrigin-Name: e08132c5cac34d5b3635961ee24a3eed506c7eac5ffd0f76639b4f3dd908d23e
Diffstat (limited to 'contrib/cpt-reset')
-rwxr-xr-xcontrib/cpt-reset26
1 files changed, 15 insertions, 11 deletions
diff --git a/contrib/cpt-reset b/contrib/cpt-reset
index 85142af..a2336e3 100755
--- a/contrib/cpt-reset
+++ b/contrib/cpt-reset
@@ -3,6 +3,7 @@
#
# Disable word-splittng warnings as they're safe here.
# shellcheck disable=SC2046
+# shellcheck source=../src/cpt-lib
## SYNOPSIS:
## .Nm
@@ -11,15 +12,13 @@
## removes all packages from the system that is not defined as a base package in
## .Pa /etc/cpt-base .
-[ "$1" ] && {
- printf 'usage: %s\n\nRemove all packages not defined in the base.\n' \
- "${0##*/}"
- exit 0
+parser_definition() {
+ setup REST help:usage -- "usage: ${0##*/}"
+ global_options compact
+ msg -- '' "Remove all packages outside of base definition"
}
-# shellcheck source=../src/cpt-lib
. cpt-lib
-
base=$(pkg_get_base nonl)
set --
@@ -29,9 +28,14 @@ set +f; for pkg in *; do
contains "$base" "$pkg" || set -- "$pkg" "$@"
done
-[ "$1" ] && {
- printf 'WARNING: This will remove \033[1m%s\033[m package(s).\n' "$#"
- printf 'Base packages can be redefined in %s\n' "$cpt_base"
- printf 'Continue? [Enter/Ctrl+C]\n'
- read -r _ && CPT_FORCE=1 cpt-remove "$@"
+[ -z "$1" ] && {
+ log "No package outside of the base definition could be found, not continuing."
+ exit 0
}
+
+warn "" "This is a potentially harmful operation, do NOT continue unless"
+warn "" "you know exactly what you are doing. Continuing will remove $#"
+warn "" "packages that are not listed in the base definition or that the"
+warn "" "base packages don't depend on. See the CPT BASE section on the"
+warn "" "user manual to learn more."
+prompt && cpt-remove "$@"