new install, self-upgrade, uninstall
This commit is contained in:
+4
-8
@@ -2,20 +2,16 @@
|
|||||||
|
|
||||||
## CONSTANTS
|
## CONSTANTS
|
||||||
|
|
||||||
readonly MIAOU_BASH_DIR=/opt/miaou-bash
|
|
||||||
readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
|
readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
|
||||||
|
readonly MIAOU_BASH_DIR=/opt/miaou-bash
|
||||||
|
|
||||||
## FUNCTIONS
|
## FUNCTIONS
|
||||||
|
|
||||||
function bootstrap {
|
function bootstrap {
|
||||||
cd "$(mktemp -d)" || exit 3
|
cd "$(mktemp -d)" || exit 3
|
||||||
curl -s -O $MAIN_TAR_GZ_URL
|
curl -s -O $MAIN_TAR_GZ_URL
|
||||||
tar -xzf main.tar.gz --directory "$(dirname $MIAOU_BASH_DIR)"
|
tar -xzf main.tar.gz --directory "$(dirname $MIAOU_BASH_DIR)"
|
||||||
|
|
||||||
local source_bin="$MIAOU_BASH_DIR/bin/miaou-bash"
|
|
||||||
local dest_bin="/usr/bin/miaou-bash"
|
|
||||||
if ! cmp -s "$source_bin" "$dest_bin"; then
|
|
||||||
cp -f "$source_bin" "$dest_bin"
|
|
||||||
fi
|
|
||||||
echo "miaou-bash deployed to: $MIAOU_BASH_DIR"
|
echo "miaou-bash deployed to: $MIAOU_BASH_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,9 +29,9 @@ set -Eeuo pipefail
|
|||||||
|
|
||||||
export MIAOU_BASH_DIR
|
export MIAOU_BASH_DIR
|
||||||
if [[ -d "$MIAOU_BASH_DIR" && -L /etc/inputrc && "$(readlink /etc/inputrc)" == "$MIAOU_BASH_DIR"/etc/inputrc ]]; then
|
if [[ -d "$MIAOU_BASH_DIR" && -L /etc/inputrc && "$(readlink /etc/inputrc)" == "$MIAOU_BASH_DIR"/etc/inputrc ]]; then
|
||||||
miaou-bash "$MIAOU_BASH_DIR/lib/self-upgrade.bash"
|
. "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/self-upgrade.bash"
|
||||||
else
|
else
|
||||||
bootstrap
|
bootstrap
|
||||||
miaou-bash "$MIAOU_BASH_DIR/lib/init.bash"
|
. "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/init.bash"
|
||||||
echo "miaou-bash successfully installed"
|
echo "miaou-bash successfully installed"
|
||||||
fi
|
fi
|
||||||
|
|||||||
+29
-13
@@ -17,7 +17,19 @@ readonly BACKUP='ORIGINAL'
|
|||||||
|
|
||||||
# FUNCTIONS
|
# FUNCTIONS
|
||||||
|
|
||||||
function required_packages {
|
function usr_bin_miaou_bash {
|
||||||
|
local source_bin="$MIAOU_BASH_DIR/bin/miaou-bash"
|
||||||
|
local dest_bin="/usr/bin/miaou-bash"
|
||||||
|
if ! [[ -f "$dest_bin" ]]; then
|
||||||
|
cp -f "$source_bin" "$dest_bin"
|
||||||
|
echo "/usr/bin/miaou-bash created"
|
||||||
|
elif ! cmp -s "$source_bin" "$dest_bin"; then
|
||||||
|
cp -f "$source_bin" "$dest_bin"
|
||||||
|
echo "/usr/bin/miaou-bash updated"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_required_packages {
|
||||||
. "$MIAOU_BASH_DIR"/tools/pkg_add "${REQUIRED_PKGS[@]}"
|
. "$MIAOU_BASH_DIR"/tools/pkg_add "${REQUIRED_PKGS[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,20 +63,23 @@ function link_etc {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function link_config_files {
|
function arch_vimrc {
|
||||||
if [[ "$DISTRO_LIKE" == 'arch' ]]; then
|
mkdir -p /etc/vim
|
||||||
mkdir -p /etc/vim
|
if ! grep -q '/etc/vim/vimrc.local' /etc/vimrc; then
|
||||||
if ! grep -q '/etc/vim/vimrc.local' /etc/vimrc; then
|
cat >>/etc/vimrc <<-EOF
|
||||||
cat >>/etc/vimrc <<-EOF
|
" Source a global configuration file if available
|
||||||
" Source a global configuration file if available
|
if filereadable("/etc/vim/vimrc.local")
|
||||||
if filereadable("/etc/vim/vimrc.local")
|
source /etc/vim/vimrc.local
|
||||||
source /etc/vim/vimrc.local
|
endif
|
||||||
endif
|
|
||||||
EOF
|
EOF
|
||||||
echo "vimrc source /etc/vim/vimrc.local if any"
|
echo "vimrc source /etc/vim/vimrc.local if any"
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function link_config_files {
|
||||||
|
[[ "$DISTRO_LIKE" == 'arch' ]] && arch_vimrc
|
||||||
|
|
||||||
link_etc vimrc.core vim
|
link_etc vimrc.core vim
|
||||||
link_etc vimrc.miaou vim
|
link_etc vimrc.miaou vim
|
||||||
link_etc vimrc.rookie vim
|
link_etc vimrc.rookie vim
|
||||||
@@ -100,8 +115,9 @@ function fix_terminfo_ghostty {
|
|||||||
|
|
||||||
source "$MIAOU_BASH_DIR/lib/functions.bash"
|
source "$MIAOU_BASH_DIR/lib/functions.bash"
|
||||||
assert_root
|
assert_root
|
||||||
|
usr_bin_miaou_bash
|
||||||
DISTRO_LIKE=$(fetch_distro_like)
|
DISTRO_LIKE=$(fetch_distro_like)
|
||||||
required_packages
|
install_required_packages
|
||||||
no_more_skeleton
|
no_more_skeleton
|
||||||
fix_terminfo_ghostty
|
fix_terminfo_ghostty
|
||||||
link_config_files
|
link_config_files
|
||||||
|
|||||||
@@ -20,12 +20,11 @@ function bootstrap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function self_upgrade {
|
function self_upgrade {
|
||||||
rm -rf "$MIAOU_BASH_DIR"
|
mv "$MIAOU_BASH_DIR" "$MIAOU_BASH_DIR".before_upgrade
|
||||||
bootstrap
|
"$MIAOU_BASH_DIR".before_upgrade/install.sh
|
||||||
|
rm -rf "$MIAOU_BASH_DIR".before_upgrade
|
||||||
. "$MIAOU_BASH_DIR/lib/init.bash"
|
|
||||||
echo "miaou-bash successfully updated"
|
echo "miaou-bash successfully updated"
|
||||||
miaou-bash --version
|
. "$MIAOU_BASH_DIR"/bin/miaou-bash --version
|
||||||
}
|
}
|
||||||
|
|
||||||
# MAIN
|
# MAIN
|
||||||
|
|||||||
+3
-4
@@ -17,9 +17,7 @@ function uninstall {
|
|||||||
|
|
||||||
rm -f /etc/vimrc/vimrc.{azerty,core,local,miaou,rookie}
|
rm -f /etc/vimrc/vimrc.{azerty,core,local,miaou,rookie}
|
||||||
rm -rf /opt/miaou-bash
|
rm -rf /opt/miaou-bash
|
||||||
|
|
||||||
unset MIAOU_BASH_DIR
|
unset MIAOU_BASH_DIR
|
||||||
echo 'MIAOU-BASH fully uninstalled, restored from original'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Main
|
# Main
|
||||||
@@ -29,7 +27,8 @@ assert_system_mode
|
|||||||
assert_root
|
assert_root
|
||||||
cd || exit
|
cd || exit
|
||||||
if _confirm_destructive; then
|
if _confirm_destructive; then
|
||||||
uninstall
|
uninstall
|
||||||
|
echo 'MIAOU-BASH fully uninstalled, previous settings restored from original'
|
||||||
else
|
else
|
||||||
>&2 echo canceled && builtin exit 1
|
builtin exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user