85 lines
3.0 KiB
Bash
Raw Normal View History

2025-10-07 11:05:08 +01:00
#!/bin/bash
# Info: Script to install/create/delete/update kubectl from file settings
# Author: JesusPerezLorenzo
# Release: 1.0
# Date: 12-10-2024
USAGE="install-provisioning.sh install | update | remove"
[ "$1" == "-h" ] && echo "$USAGE" && exit 1
debug=${-//[^x]/}
[ -r "env-provisioning" ] && . env-provisioning
function _install_reqs {
# KCL requires gcc and crt.o
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
DEBIAN_FRONTEND=noninteractive sudo apt-get -y -qq install gcc-multilib 2>/dev/null
}
_install_reqs
ROOT_PROVISIONING="${ROOT_PROVISIONING:-/usr/local}"
ROOT_BIN_PROVISIONING="${ROOT_BIN_PROVISIONING:-/usr/local/bin}"
PROVISIONING_RUN_MODE="${PROVISIONING_RUN_MODE:-mode-ui}"
if [ -r "provisioning.tar.gz" ] ; then
tar xzf provisioning.tar.gz
rm -f provisioning.tar.gz
fi
if [ ! -r "provisioning" ] ; then
echo "Error: path 'provisioning' not found"
exit 1
fi
[ -d "$ROOT_PROVISIONING/provisioning" ] && sudo rm -r "$ROOT_PROVISIONING/provisioning"
sudo rm -f "$ROOT_BIN_PROVISIONING/provisioning"
id_u=$(id -u)
root_path=$HOME
[ "$it_u" != 0 ] && root_path="/root"
# Need this to Nushell to be activated with plugins
if [ -d "config-nushell" ] ; then
mkdir -p $HOME/.config/nushell
cp config-nushell/* $HOME/.config/nushell
if [ "$root_path" != "$HOME" ] ; then
sudo mkdir -p $root_path/.config/nushell
sudo cp config-nushell/* $root_path/.config/nushell
fi
if [ -d "$USER_HOME" ] && [ -n "$USER_NAME" ] && [ "$USER_HOME" != "$HOME" ] ; then
sudo mkdir -p $USER_HOME/.config/nushell
sudo cp config-nushell/* $USER_HOME/.config/nushell
sudo chown -R $USER_NAME $USER_HOME/.config
fi
fi
if [ -n "$debug" ] ; then
bash -x ./installer "$ROOT_PROVISIONING" "$ROOT_BIN_PROVISIONING" "$PROVISIONING_RUN_MODE"
else
./installer "$ROOT_PROVISIONING"
fi
has_provisioning=$(type -P provisioning)
[ -n "$has_provisioning" ] && echo "provisioning installed"
# Need this for Nushell with plugins copied to $HOME and $USER_HOME
if [ "$root_path" != "$HOME" ] ; then
sudo cp $root_path/.config/nushell/plugin.nu $HOME/.config/nushell
sudo chown -R $(whoami) $HOME/.config/nushell/plugin.nu
fi
if [ -d "$USER_HOME" ] && [ -n "$USER_NAME" ] && [ "$USER_HOME" != "$HOME" ] ; then
sudo cp $root_path/.config/nushell/plugin.nu $USER_HOME/.config/nushell
sudo chown $USER_NAME $USER_HOME/.config/nushell/plugin.nu
fi
sudo chmod 755 $root_path/.config/provisioning 2>/dev/null
if [ -d "$USER_HOME" ] && [ -n "$USER_NAME" ]; then
mkdir -p $USER_HOME/.config
if sudo cp -pr $root_path/.config/provisioning $USER_HOME/.config ; then
sudo chown -R $USER_NAME $USER_HOME/.config
sudo chmod 755 $USER_HOME/.config/provisioning
fi
fi
if [ ! -d "$HOME/.config/provisioning" ] ; then
mkdir -p $HOME/.config
if sudo cp -pr $root_path/.config/provisioning $HOME/.config ; then
sudo chown -R $(whoami) $HOME/.config
sudo chmod 755 $HOME/.config/provisioning
fi
fi