Browse Source

new install, self-upgrade, uninstall

main
pvincent 4 days ago
parent
commit
47427be78b
  1. 12
      install.sh
  2. 42
      lib/init.bash
  3. 9
      lib/self-upgrade.bash
  4. 5
      lib/uninstall.bash

12
install.sh

@ -2,20 +2,16 @@
## 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 MIAOU_BASH_DIR=/opt/miaou-bash
## FUNCTIONS
function bootstrap {
cd "$(mktemp -d)" || exit 3
curl -s -O $MAIN_TAR_GZ_URL
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"
}
@ -33,9 +29,9 @@ set -Eeuo pipefail
export MIAOU_BASH_DIR
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
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"
fi

42
lib/init.bash

@ -17,7 +17,19 @@ readonly BACKUP='ORIGINAL'
# 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[@]}"
}
@ -51,20 +63,23 @@ function link_etc {
fi
}
function link_config_files {
if [[ "$DISTRO_LIKE" == 'arch' ]]; then
mkdir -p /etc/vim
if ! grep -q '/etc/vim/vimrc.local' /etc/vimrc; then
cat >>/etc/vimrc <<-EOF
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
function arch_vimrc {
mkdir -p /etc/vim
if ! grep -q '/etc/vim/vimrc.local' /etc/vimrc; then
cat >>/etc/vimrc <<-EOF
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
EOF
echo "vimrc source /etc/vim/vimrc.local if any"
fi
echo "vimrc source /etc/vim/vimrc.local if any"
fi
}
function link_config_files {
[[ "$DISTRO_LIKE" == 'arch' ]] && arch_vimrc
link_etc vimrc.core vim
link_etc vimrc.miaou vim
link_etc vimrc.rookie vim
@ -100,8 +115,9 @@ function fix_terminfo_ghostty {
source "$MIAOU_BASH_DIR/lib/functions.bash"
assert_root
usr_bin_miaou_bash
DISTRO_LIKE=$(fetch_distro_like)
required_packages
install_required_packages
no_more_skeleton
fix_terminfo_ghostty
link_config_files

9
lib/self-upgrade.bash

@ -20,12 +20,11 @@ function bootstrap {
}
function self_upgrade {
rm -rf "$MIAOU_BASH_DIR"
bootstrap
. "$MIAOU_BASH_DIR/lib/init.bash"
mv "$MIAOU_BASH_DIR" "$MIAOU_BASH_DIR".before_upgrade
"$MIAOU_BASH_DIR".before_upgrade/install.sh
rm -rf "$MIAOU_BASH_DIR".before_upgrade
echo "miaou-bash successfully updated"
miaou-bash --version
. "$MIAOU_BASH_DIR"/bin/miaou-bash --version
}
# MAIN

5
lib/uninstall.bash

@ -17,9 +17,7 @@ function uninstall {
rm -f /etc/vimrc/vimrc.{azerty,core,local,miaou,rookie}
rm -rf /opt/miaou-bash
unset MIAOU_BASH_DIR
echo 'MIAOU-BASH fully uninstalled, restored from original'
}
# Main
@ -30,6 +28,7 @@ assert_root
cd || exit
if _confirm_destructive; then
uninstall
echo 'MIAOU-BASH fully uninstalled, previous settings restored from original'
else
>&2 echo canceled && builtin exit 1
builtin exit 1
fi
Loading…
Cancel
Save