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. 7
      lib/uninstall.bash

12
install.sh

@ -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

42
lib/init.bash

@ -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 {
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 EOF
echo "vimrc source /etc/vim/vimrc.local if any"
fi
echo "vimrc source /etc/vim/vimrc.local if any"
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

9
lib/self-upgrade.bash

@ -20,12 +20,11 @@ function bootstrap {
} }
function self_upgrade { 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" echo "miaou-bash successfully updated"
miaou-bash --version
. "$MIAOU_BASH_DIR"/bin/miaou-bash --version
} }
# MAIN # MAIN

7
lib/uninstall.bash

@ -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
Loading…
Cancel
Save