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 " }} {{ $email := promptStringOnce . "email" "What is your main git email address " }}
{{ $signinkey := promptStringOnce . "signingkey" "What is your git signing key " }} {{ $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] [git]
autoCommit = true autoCommit = true
autoPush = true autoPush = true
[data] [data]
hasNVim = {{ $hasNVim }}
hasLVim = {{ $hasLVim }}
hasLatex = {{ $hasLatex }}
email = {{ $email | quote }} email = {{ $email | quote }}
signinkey = {{ $signinkey | quote }} signinkey = {{ $signinkey | quote }}
hasLatex = {{ $hasLatex }}

View File

@ -3,13 +3,23 @@
# include lib # include lib
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh . ${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.os "linux") -}}
{{ if (eq .chezmoi.osRelease.id "manjaro" "arch") -}} {{ if (eq .chezmoi.osRelease.id "manjaro" "arch") -}}
log "Begin Arch/Manjaro Linux packages installation" 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" log "Finish Arch/Manjaro Linux packages installation"

View File

@ -1,17 +1,8 @@
#!{{ lookPath "bash" }} #!{{ lookPath "bash" }}
# Load asdf # include lib
. "$HOME/.asdf/asdf.sh" . ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
. ${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"
}
# Plugins to install # Plugins to install
@ -27,7 +18,6 @@ plugins=(
) )
### Install ASDF plugins ### ### Install ASDF plugins ###
log "Begin ASDF plugins installation" 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" }} #!{{ lookPath "bash" }}
# Load asdf # include lib
# as we need cargo and it is installed from . ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
. "$HOME/.asdf/asdf.sh" . ${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"
}
# Environment variables # Environment variables
ZIMDIR=${HOME}/.zim ZIMDIR=${HOME}/.zim
# Packages to install
packages=(
zsh
)
### Update shell install ###
log "Begin Zsh customization"
### 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 cargo ## Update cargo
log "Installing cargo-update" inf "installing cargo-update..."
cargo install cargo-update cargo install cargo-update
log "Finish cargo-update installation"
## Install Atuin ## Install Atuin
log "Installing atuin" inf "installing atuin..."
cargo install atuin cargo install atuin
log "Finish atuin installation"
## Reshim ## Reshim
log "Asdf reshim..." inf "asdf reshim..."
asdf reshim asdf reshim
log "Reshim ok."
### Config Zsh ### ### Config Zsh ###
log "Installing Zim Framework" inf "installing zim framework"
$(which zsh) -c "source ${ZIMDIR}/zimfw.zsh init -q" $(which zsh) -c "source ${ZIMDIR}/zimfw.zsh init -q"
log "Finish zsh installation"
log "Finish Zsh customization"

View File

@ -1,26 +1,17 @@
#!{{ lookPath "bash" }} #!{{ lookPath "bash" }}
# Logging function # include lib
log() { . ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
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"
}
# Environment variables # Environment variables
TEXMFDIR=${HOME}/texmf/tex/latex TEXMFDIR=${HOME}/texmf/tex/latex
{{- if (ne .hasLatex false) }} {{- if (ne .hasLatex false) }}
log "Begin LaTeX repo initialization" log "Begin LaTeX repo initialization"
texhash "${TEXMFDIR}" texhash "${TEXMFDIR}"
log "Finish LaTeX repo initialization" log "Finish LaTeX repo initialization"
{{ end -}} {{ end -}}

View File

@ -4,38 +4,112 @@
. ${CHEZMOI_WORKING_TREE}/scripts/utils.sh . ${CHEZMOI_WORKING_TREE}/scripts/utils.sh
# Packages to install # usage
packages=( usage() {
bubblewrap printf "\nUsage:\n"
curl echo " --base Install base pacakges"
fzf echo " --nvim Install deps for NeoVim"
pass echo " --zsh Install deps for zsh"
libyaml echo " --latex Install deps for latex"
ranger }
tmux
trash-cli
ueberzug
unzip
wget
zip
zoxide
)
# packages to install
install_base() {
packages=(
bubblewrap
curl
fzf
pass
libyaml
ranger
tmux
trash-cli
ueberzug
unzip
wget
zip
zoxide
)
}
## Update system install_nvim() {
inf "updating system..." packages+=(
sudo pacman -Syu --noconfirm --quiet neovim
python-pip
python-pynvim
ripgrep
)
}
## Install yay install_zsh() {
if [ ! $(command -v yay) ]; then packages+=(
install_binary "yay" 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 fi
## Install packages while [ "$#" -gt 0 ]; do
for package in ${packages[@]}; do case "$1" in
if [ "$(yay -Qq $package 2> /dev/null)" != $package ]; then --base) BASE=true ;;
install_binary $package "yay" --nvim) NVIM=true ;;
else --zsh) ZSH=true ;;
inf "${package} already installed." --latex) LATEX=true ;;
fi *)
usage
exit 1
;;
esac
shift
done done
main() {
"$BASE" && install_base
"$NVIM" && install_nvim
"$ZSH" && install_zsh
"$LATEX" && install_latex
## Update system
update_system
## Install yay
if [ ! $(command -v yay) ]; then
install_binary "yay"
fi
## Install packages
for package in ${packages[@]}; do
if [ "$(yay -Qq $package 2> /dev/null)" != $package ]; then
install_binary $package "yay"
else
inf "${package} already installed."
fi
done
exit 0
}
main "$@"

View File

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