diff --git a/install.sh b/install.sh old mode 100755 new mode 100644 index 3715a32..8d47593 --- a/install.sh +++ b/install.sh @@ -22,7 +22,7 @@ function assert_supported_distro { set -Eeuo pipefail -message="${1:-installed}" +deployment_type_adjective="${1:-installed}" [[ "$UID" -ne 0 ]] && echo 'root privilege required' && exit 1 ! assert_supported_distro && echo 'unsupported distro: debian-like OR arch-like expected' && exit 2 @@ -32,6 +32,6 @@ if [[ -d "$MIAOU_BASH_DIR" && -L /etc/inputrc && "$(readlink /etc/inputrc)" == " . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/self-upgrade.bash" else bootstrap - . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/init.bash" - echo "miaou-bash successfully $message" + . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/initiate.bash" + echo "miaou-bash successfully $deployment_type_adjective" fi diff --git a/lib/devmode.bash b/lib/devmode.bash old mode 100755 new mode 100644 index 0185c15..772a530 --- a/lib/devmode.bash +++ b/lib/devmode.bash @@ -23,7 +23,7 @@ function dev_mode { git clone "$GIT_URL" sudo rm "$MIAOU_BASH_DIR" -rf sudo ln -s "$target" "$MIAOU_BASH_DIR" - sudo -E "$MIAOU_BASH_DIR"/lib/init.bash + sudo -E "$MIAOU_BASH_DIR"/lib/initiate.bash } function assert_reachable_target { diff --git a/lib/init.bash b/lib/init.bash deleted file mode 100755 index f71774b..0000000 --- a/lib/init.bash +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/env miaou-bash - -# CONSTANTS - -readonly AZERTY_ZONES=( - 'Europe/Paris' - 'Indian/Reunion' - 'Indian/Mayotte' - 'America/Cayenne' - 'America/Guadeloupe' - 'America/Martinique' - 'Pacific/Noumea' - 'Pacific/Tahiti' -) -readonly REQUIRED_PKGS=(file jq vim git) -readonly BACKUP='ORIGINAL' - -# FUNCTIONS - -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[@]}" -} - -function no_more_skeleton { - if [[ -e /etc/skel/.bashrc ]]; then - rm /etc/skel/.bashrc - echo "skeleton .bashrc removed!" - fi -} - -function link_etc { - local filename="$1" subfolder="${2:-}" - local link_name="$filename" - [[ -v LINK_NAME ]] && link_name="$LINK_NAME" - - local source="$MIAOU_BASH_DIR/etc" - local destination="/etc" - [[ -n "$subfolder" ]] && source+="/${subfolder}" && destination+="/${subfolder}" - if [[ -L "$destination/$link_name" ]]; then - if [[ "$(readlink "$destination/$link_name")" != "$source/$filename" ]]; then - ln -sf "$source/$filename" "$destination/$link_name" - echo "link $source/$link_name updated" - fi - else - if [[ -f "$destination/$link_name" ]]; then - mv "$destination/$link_name" "$destination/$link_name.$BACKUP" - echo "$destination/$link_name.$BACKUP saved!" - fi - ln -s "$source/$filename" "$destination/$link_name" - echo "link $source/$link_name created" - fi -} - -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 - -} - -function link_config_files { - [[ "$DISTRO_LIKE" == 'arch' ]] && arch_vimrc - - link_etc vimrc.core vim - link_etc vimrc.miaou vim - link_etc vimrc.rookie vim - - if in_azerty_zone 2>/dev/null; then - link_etc vimrc.azerty vim - LINK_NAME=vimrc.local link_etc vimrc.local.azerty vim - else - link_etc vimrc.local vim - fi - link_etc bash.bashrc - link_etc inputrc # last command required to detect successful installation -} - -function bind_inputrc { - bind -f /etc/inputrc 2>/dev/null # arch: dismiss harmless warning -} - -function in_azerty_zone { - [[ -L /etc/localtime ]] || return 1 - - local zone - zone=$(readlink /etc/localtime) - zone="${zone#/usr/share/zoneinfo/}" # remove prefix - for i in "${AZERTY_ZONES[@]}"; do [[ "$zone" == "$i" ]] && return; done - return 1 -} - -function fix_terminfo_ghostty { - if ! infocmp xterm-ghostty >/dev/null 2>&1; then - tic -x "$MIAOU_BASH_DIR"/assets/terminfo/ghostty 2>/dev/null - echo 'terminfo ghostty succesfully compiled' - fi -} - -# MAIN - -source "$MIAOU_BASH_DIR/lib/functions.bash" -assert_root -usr_bin_miaou_bash -DISTRO_LIKE=$(fetch_distro_like) -install_required_packages -no_more_skeleton -fix_terminfo_ghostty -link_config_files -bind_inputrc diff --git a/lib/self-upgrade.bash b/lib/self-upgrade.bash old mode 100755 new mode 100644