1
0
This commit is contained in:
Jeff LANCE 2024-08-03 17:21:54 +02:00
parent f5f003e605
commit 66980f428f
9 changed files with 244 additions and 270 deletions

View File

@ -1,10 +1,15 @@
{{ $email := promptStringOnce . "email" "What is your main git email address " }}
{{ $signinkey := promptStringOnce . "signingkey" "What is your git signing key " }}
{{ $hasLatex := promptBoolOnce . "hasLatex" "Do i install latex files " }}
{{ $hasNVim := promptBool "Do i install Neovim " false}}
{{ $hasLVim := promptBool "Do i install LunarVim " false }}
{{ $hasLatex := promptBool "Do i install latex " false }}
[git]
autoCommit = true
autoPush = true
[data]
hasNVim = {{ $hasNVim }}
hasLVim = {{ $hasLVim }}
hasLatex = {{ $hasLatex }}
email = {{ $email | quote }}
signinkey = {{ $signinkey | quote }}
hasLatex = {{ $hasLatex }}

View File

@ -3,13 +3,23 @@
# include lib
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
# args
args="--base --zsh"
{{- if (ne .hasNVim false) }}
args="${args} --nvim"
{{- end }}
{{- if (ne .hasLatex false) }}
args="${args} --latex"
{{- end }}
{{ if (eq .chezmoi.os "linux") -}}
{{ if (eq .chezmoi.osRelease.id "manjaro" "arch") -}}
log "Begin Arch/Manjaro Linux packages installation"
. {{ .chezmoi.workingTree }}/scripts/archlinux.sh
. {{ .chezmoi.workingTree }}/scripts/archlinux.sh ${args}
log "Finish Arch/Manjaro Linux packages installation"

View File

@ -1,17 +1,8 @@
#!{{ lookPath "bash" }}
# Load asdf
. "$HOME/.asdf/asdf.sh"
# Logging function
log() {
printf "$(tput setaf 4)$(tput bold)>>>>> %s <<<<<$(tput sgr0)\n" "$1"
}
inf() {
printf "$(tput setaf 2)╚═══ᐳ $(tput sgr 0 1)$(tput setaf 2)%s$(tput sgr0)\n" "$1"
}
# include lib
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
. ${HOME}/.asdf/asdf.sh
# Plugins to install
@ -27,7 +18,6 @@ plugins=(
)
### Install ASDF plugins ###
log "Begin ASDF plugins installation"

View File

@ -0,0 +1,17 @@
#!{{ lookPath "bash" }}
# include lib
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
# LVim version
lvim_version="1.4"
{{- if (and (ne .hasNVim false) (ne .hasLatex false)) }}
log "Begin LVim installation"
LV_BRANCH="release-${lvim_version}/neovim-0.9" bash <(curl -s "https://raw.githubusercontent.com/LunarVim/LunarVim/release-${lvim_version}/neovim-0.9/utils/installer/install.sh")
log "Finish LVim installation"
{{- end }}

View File

@ -1,83 +0,0 @@
#!{{ lookPath "bash" }}
# Logging function
log() {
printf "$(tput setaf 4)$(tput bold)>>>>> %s <<<<<$(tput sgr0)\n" "$1"
}
inf() {
printf "$(tput setaf 2)╚═══ᐳ $(tput sgr 0 1)$(tput setaf 2)%s$(tput sgr0)\n" "$1"
}
# Packages to install
packages=(
neovim
python-pip
python-pynvim
ripgrep
)
# LVim version
lvim_version="1.4"
log "Begin LVim installation"
{{ if (eq .chezmoi.osRelease.id "manjaro" "arch") -}}
## Update system
inf "updating system..."
yay -Syu --noconfirm --removemake --quiet
## Install packages
for package in ${packages[@]}; do
if [ "$(yay -Qq $package 2> /dev/null)" != $package ]; then
inf "installing ${package}..."
yay -S --noconfirm --removemake --quiet $package
fi
done
{{ else if (eq .chezmoi.osRelease.id "debian" "ubuntu") -}}
export DEBIAN_FRONTEND=noninteractive
## Update system
inf "updating system..."
{{- if ne .chezmoi.username "root" }}
sudo -E apt update -qq
sudo -E apt upgrade --yes -qq
{{- else }}
apt update -qq
apt upgrade --yes -qq
{{- end}}
## Install packages
## packages[1]=golang
packages=(${packages[@]/python/python3})
packages=(${packages[@]/neovim/})
packages+=(python3-venv)
for package in ${packages[@]}; do
inf "installing ${package}..."
{{- if ne .chezmoi.username "root" }}
sudo -E apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package
{{- else }}
apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package
{{- end }}
done
inf "installing neovim..."
mist install neovim
{{- end }}
inf "installing lvim..."
LV_BRANCH="release-${lvim_version}/neovim-0.9" bash <(curl -s "https://raw.githubusercontent.com/LunarVim/LunarVim/release-${lvim_version}/neovim-0.9/utils/installer/install.sh")
log "Finish LVim installation"

View File

@ -1,110 +1,37 @@
#!{{ lookPath "bash" }}
# Load asdf
# as we need cargo and it is installed from
. "$HOME/.asdf/asdf.sh"
# Logging function
log() {
printf "$(tput setaf 4)$(tput bold)>>>>> %s <<<<<$(tput sgr0)\n" "$1"
}
inf() {
printf "$(tput setaf 2)╚═══ᐳ $(tput sgr 0 1)$(tput setaf 2)%s$(tput sgr0)\n" "$1"
}
# include lib
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
. ${HOME}/.asdf/asdf.sh
# Environment variables
ZIMDIR=${HOME}/.zim
# Packages to install
packages=(
zsh
)
### Install Zsh ###
log "Begin Zsh installation"
{{ if (eq .chezmoi.osRelease.id "manjaro" "arch") -}}
## Update system
inf "updating system..."
yay -Syu --noconfirm --removemake --quiet
## install packages
for package in ${packages[@]}; do
if [ "$(yay -Qq $package 2> /dev/null)" != $package ]; then
inf "installing ${package}..."
yay -S --noconfirm --removemake --quiet $package
fi
done
{{ else if (eq .chezmoi.osRelease.id "debian" "ubuntu") -}}
export DEBIAN_FRONTEND=noninteractive
## Update system
inf "updating system..."
{{- if ne .chezmoi.username "root" }}
sudo -E apt update -qq
sudo -E apt upgrade --yes -qq
{{- else }}
apt update -qq
apt upgrade --yes -qq
{{- end}}
## packages=(${packages[@]//starship/})
## install packages
for package in ${packages[@]}; do
inf "installing ${package}..."
{{- if ne .chezmoi.username "root" }}
sudo -E apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package
{{- else }}
apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package
{{- end }}
done
## inf "installing starship..."
## mist install starship-bin
{{- end }}
log "Finish Zsh installation"
### Update shell install ###
log "Begin Zsh customization"
## Update cargo
log "Installing cargo-update"
inf "installing cargo-update..."
cargo install cargo-update
log "Finish cargo-update installation"
## Install Atuin
log "Installing atuin"
inf "installing atuin..."
cargo install atuin
log "Finish atuin installation"
## Reshim
log "Asdf reshim..."
inf "asdf reshim..."
asdf reshim
log "Reshim ok."
### Config Zsh ###
log "Installing Zim Framework"
inf "installing zim framework"
$(which zsh) -c "source ${ZIMDIR}/zimfw.zsh init -q"
log "Finish zsh installation"
log "Finish Zsh customization"

View File

@ -1,21 +1,12 @@
#!{{ lookPath "bash" }}
# Logging function
log() {
printf "$(tput setaf 4)$(tput bold)>>>>> %s <<<<<$(tput sgr0)\n" "$1"
}
inf() {
printf "$(tput setaf 2)╚═══ᐳ $(tput sgr 0 1)$(tput setaf 2)%s$(tput sgr0)\n" "$1"
}
# include lib
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
# Environment variables
TEXMFDIR=${HOME}/texmf/tex/latex
{{- if (ne .hasLatex false) }}
log "Begin LaTeX repo initialization"

View File

@ -4,7 +4,17 @@
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
# Packages to install
# usage
usage() {
printf "\nUsage:\n"
echo " --base Install base pacakges"
echo " --nvim Install deps for NeoVim"
echo " --zsh Install deps for zsh"
echo " --latex Install deps for latex"
}
# packages to install
install_base() {
packages=(
bubblewrap
curl
@ -20,11 +30,70 @@ packages=(
zip
zoxide
)
}
install_nvim() {
packages+=(
neovim
python-pip
python-pynvim
ripgrep
)
}
install_zsh() {
packages+=(
zsh
)
}
install_latex() {
packages+=(
texlive-basic
texlive-latex
texlive-latexrecommended
texlive-latexextra
texlive-fontsrecommended
texlive-fontsextre
texlive-luatex
texlive-mathscience
texlive-lang
)
}
# cli options
BASE=false
NVIM=false
ZSH=false
LATEX=false
if [ "$#" -eq 0 ]; then
usage
exit 1
fi
while [ "$#" -gt 0 ]; do
case "$1" in
--base) BASE=true ;;
--nvim) NVIM=true ;;
--zsh) ZSH=true ;;
--latex) LATEX=true ;;
*)
usage
exit 1
;;
esac
shift
done
main() {
"$BASE" && install_base
"$NVIM" && install_nvim
"$ZSH" && install_zsh
"$LATEX" && install_latex
## Update system
inf "updating system..."
sudo pacman -Syu --noconfirm --quiet
update_system
## Install yay
if [ ! $(command -v yay) ]; then
@ -39,3 +108,8 @@ for package in ${packages[@]}; do
inf "${package} already installed."
fi
done
exit 0
}
main "$@"

View File

@ -13,20 +13,10 @@ err() {
printf "$(tput setaf 9)$(tput bold)>>>>> %s ! <<<<<$(tput sgr0)\n" "$1"
}
install_binary() {
##
# Simple abstraction to install a binary using a supported package manager
# Example usage:
# install_binary "fzf"
# install_binary "fzf" "dnf"
local package_name="${1}"
local package_manager="${2}"
# Function to determine the package manager if not specified
determine_package_manager() {
if [ command -v apt-get &>/dev/null ]; then
echo "apt-get"
echo "apt"
elif [ command -v pamac &>/dev/null ]; then
echo "pamac"
elif [ command -v yay &>/dev/null ]; then
@ -39,6 +29,15 @@ install_binary() {
fi
}
# Simple abstraction to install a binary using a supported package manager
install_binary() {
# Example usage:
# install_binary "fzf"
# install_binary "fzf" "dnf"
local package_name="${1}"
local package_manager="${2}"
# If the package manager is not specified, determine it
if [[ -z "${package_manager}" ]]; then
package_manager=$(determine_package_manager)
@ -48,7 +47,7 @@ install_binary() {
inf "installing ${package_name} using ${package_manager}..."
case "${package_manager}" in
apt-get)
apt)
sudo apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq "${package_name}" || {
err "Installation failed."
exit 1
@ -77,7 +76,51 @@ install_binary() {
exit 1
;;
esac
inf "installation of ${package_name} completed successfully."
}
update_system() {
local package_manager="${1}"
# If the package manager is not specified, determine it
if [[ -z "${package_manager}" ]]; then
package_manager=$(determine_package_manager)
fi
# Install the package using the determined or specified package manager
inf "updating system using ${package_manager}..."
case "${package_manager}" in
apt)
sudo -E apt update -qq && sudo -E apt upgrade --yes -qq || {
err "Installation failed."
exit 1
}
;;
pacman)
sudo pacman -Syu --noconfirm --removemake --quiet || {
err "Installation failed."
exit 1
}
;;
pamac)
sudo pamac update --aur --no-confirm && sudo pamac upgrade --aur --no-confirm || {
err "Installation failed."
exit 1
}
;;
yay)
yay -Syu --noconfirm --removemake --quiet || {
err "Installation failed."
exit 1
}
;;
*)
err "Unsupported package manager: ${package_manager}"
exit 1
;;
esac
inf "system update completed successfully."
}