From b488427332b6eaa9c1ea4380601d6f40a26102bd Mon Sep 17 00:00:00 2001 From: pvincent Date: Tue, 18 Aug 2026 11:45:37 +0400 Subject: [PATCH] install2 --- lib/functions.bash | 4 ++++ lib/self-upgrade.bash | 20 +++++--------------- lib/uninstall.bash | 6 +++--- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/lib/functions.bash b/lib/functions.bash index 2d7c857..6041003 100644 --- a/lib/functions.bash +++ b/lib/functions.bash @@ -2,6 +2,10 @@ ## ASSERT Functions +function sudo_root { + [[ "$UID" -ne 0 ]] && sudo -vp 'SUDO privilege required: ' +} + function assert_root { [[ "$UID" -ne 0 ]] && echo 'root privilege required' && return 1 true diff --git a/lib/self-upgrade.bash b/lib/self-upgrade.bash index f8dc08c..f5767fb 100644 --- a/lib/self-upgrade.bash +++ b/lib/self-upgrade.bash @@ -6,33 +6,23 @@ function self_upgrade { local backup="$MIAOU_BASH_DIR".before_upgrade - mv "$MIAOU_BASH_DIR" "$backup" + sudo mv "$MIAOU_BASH_DIR" "$backup" + # TODO: install2 if "$backup"/install.sh upgraded; then - rm -rf "$backup" + sudo rm -rf "$backup" echo -n "version: " . "$MIAOU_BASH_DIR"/bin/miaou-bash --version else echo "ERROR: trouble during self-upgrade: revert back" - rm -rf "$MIAOU_BASH_DIR" - mv "$backup" "$MIAOU_BASH_DIR" - fi -} - -#TODO: to remove -function safe_mode { - if [[ ! -v MIAOU_BASH_DIR ]]; then - >&2 echo 'WARNING: MIAOU_BASH_DIR undefined : safe-mode enabled' - MIAOU_BASH_DIR=/opt/miaou-bash - export MIAOU_BASH_DIR + sudo rm -rf "$MIAOU_BASH_DIR" + sudo mv "$backup" "$MIAOU_BASH_DIR" fi } # MAIN -safe_mode source "$MIAOU_BASH_DIR"/lib/functions.bash assert_system_mode -assert_root current=$(miaou-bash --version) latest=$("$MIAOU_BASH_DIR/tools/wget_semver" artcode miaou/miaou-bash) diff --git a/lib/uninstall.bash b/lib/uninstall.bash index 12751e8..9a3f362 100644 --- a/lib/uninstall.bash +++ b/lib/uninstall.bash @@ -17,17 +17,17 @@ function uninstall { rm -f /etc/vimrc/vimrc.{azerty,core,local,miaou,rookie} rm -rf /opt/miaou-bash - unset MIAOU_BASH_DIR } # Main source "$MIAOU_BASH_DIR"/lib/functions.bash assert_system_mode -assert_root -cd || exit 2 # exit should not occur! +sudo_root if _confirm_destructive 2>/dev/null; then + cd || exit 2 # exit should not occur! uninstall + source /etc/profile echo 'MIAOU-BASH fully uninstalled, previous settings restored from original' else builtin exit 1