new install

This commit is contained in:
pvincent
2026-08-06 22:09:42 +04:00
parent 556fad02df
commit 359e57e900
3 changed files with 32 additions and 61 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
" --------------- " ---------------
" Open File and Go to Line under Cursor " Open File and Go to Line under Cursor
nnoremap gf gF nmap gf gF
" Move Along Words " Move Along Words
inoremap <C-Left> B inoremap <C-Left> B
+18 -43
View File
@@ -2,56 +2,31 @@
## CONSTANTS ## CONSTANTS
readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
readonly DESTINATION=/opt/miaou-bash readonly DESTINATION=/opt/miaou-bash
readonly REQUIRED_PKGS=(file jq) readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
## FUNCTIONS ## FUNCTIONS
function push_directory { function bootstrap {
pushd "$1" || (echo "unable to push directory <$1>" && exit 1) if [[ ! -d "$DESTINATION" ]]; then
} local temp_dir
temp_dir=$(mktemp -d)
pushd "$temp_dir" || return 2
curl --no-progress-meter -O $MAIN_TAR_GZ_URL
tar -xzf main.tar.gz --directory "$DESTINATION"
popd || return 3
fi
function pop_directory { local source_bin="$MIAOU_BASH_DIR/bin/miaou-bash"
popd || (echo "unable to pop from previous directory" && exit 1) local dest_bin="/usr/bin/miaou-bash"
cmp -s "$source_bin" "$dest_bin" || cp -f "$source_bin" "$dest_bin"
export MIAOU_BASH_DIR="$DESTINATION"
} }
## MAIN ## MAIN
[[ "$UUID" -ne 0 ]] && echo 'root privilege required' && exit 1 [[ "$UID" -ne 0 ]] && echo 'root privilege required' && exit 1
if [[ -v MIAOU_BASH_DIR ]]; then [[ -v MIAOU_BASH_DIR ]] || bootstrap
miaou-bash "$MIAOU_BASH_DIR/init.sh" miaou-bash "$MIAOU_BASH_DIR/lib/init.bash"
else
MIAOU_BASH_DIR="$DESTINATION"
export MIAOU_BASH_DIR
cd "$(mktemp -d)"
curl --no-progress-meter -O $MAIN_TAR_GZ_URL
fi
if [[ $PWD != "$DESTINATION" ]]; then
# download and fullfill /opt/miaou-bash, then run it from folder
if [[ -L /opt/miaou-bash ]]; then
/opt/miaou-bash/install.sh
else
rm -rf "$DESTINATION"
pushd "$(mktemp -d)"
curl --no-progress-meter -O $MAIN_TAR_GZ_URL
tar -xzf main.tar.gz
mv miaou-bash /opt/
pop_directory
rm -rf "$TEMP"
push_directory /opt/miaou-bash && ./install.sh
fi
else
MIAOU_BASH_DIR=$CURDIR
export MIAOU_BASH_DIR
source "$MIAOU_BASH_DIR/lib/functions.bash"
"$MIAOU_BASH_DIR/tools/idem_apt_install" "${REQUIRED_PKGS[@]}"
./init.sh
fi
+13 -17
View File
@@ -1,14 +1,17 @@
#!/bin/bash #!/usr/bin/env miaou-bash
# CONSTANTS # CONSTANTS
MIAOU_BASH_DIR=${MIAOU_BASH_DIR:-/opt/miaou-bash} readonly REQUIRED_PKGS=(file jq vim)
ORIGINAL="ORIGINAL" readonly ORIGINAL="ORIGINAL"
PREDEFINED_CONFIG_FILES=(/etc/bash.bashrc /etc/inputrc) readonly PREDEFINED_CONFIG_FILES=(/etc/bash.bashrc /etc/inputrc)
readonly MIAOU_BASH_DIR ORIGINAL
# FUNCTIONS # FUNCTIONS
function required_packages {
"$MIAOU_BASH_DIR/tools/idem_apt_install" "${REQUIRED_PKGS[@]}"
}
function no_more_skeleton { function no_more_skeleton {
[[ -e /etc/skel/.bashrc ]] && rm /etc/skel/.bashrc && echo "skeleton .bashrc removed!" [[ -e /etc/skel/.bashrc ]] && rm /etc/skel/.bashrc && echo "skeleton .bashrc removed!"
true true
@@ -17,13 +20,12 @@ function no_more_skeleton {
function predefine_config_files { function predefine_config_files {
for i in "${PREDEFINED_CONFIG_FILES[@]}"; do for i in "${PREDEFINED_CONFIG_FILES[@]}"; do
local miaou_file local miaou_file
miaou_file="${MIAOU_BASH_DIR}/$(basename "$i")" miaou_file="${MIAOU_BASH_DIR}/etc/$(basename "$i")"
if [[ -L "$i" ]]; then if [[ -L "$i" ]]; then
if [[ "$(readlink "$i")" == "${miaou_file}" ]]; then if [[ "$(readlink "$i")" == "${miaou_file}" ]]; then
echo "$i => MIAOU_BASH_DIR already set!" echo "$i => MIAOU_BASH_DIR already set!"
else else
rm "$i" ln -sf "${miaou_file}" "$i"
ln -s "${miaou_file}" "$i"
echo "$i => MIAOU_BASH_DIR freshly defined." echo "$i => MIAOU_BASH_DIR freshly defined."
fi fi
else else
@@ -34,17 +36,11 @@ function predefine_config_files {
done done
} }
function bin_miaou_bash {
[[ ! -e /usr/bin/miaou-bash ]] &&
ln -s "$MIAOU_BASH_DIR/bin/miaou-bash" /usr/bin/ &&
echo "miaou-bash globally defined!"
}
# MAIN # MAIN
set -TEeu -o pipefail [ "$UID" -ne 0 ] && echo 'root privilege required' && exit 1
[ "$(id -u)" -ne 0 ] && echo 'root privilege required' && exit 1
source "$MIAOU_BASH_DIR/lib/functions.bash"
required_packages
no_more_skeleton no_more_skeleton
predefine_config_files predefine_config_files
bin_miaou_bash