From 8ccda618116e9c7bac6569d8d3a2938dbc6255eb Mon Sep 17 00:00:00 2001 From: aleidk Date: Wed, 20 Nov 2024 11:29:46 -0300 Subject: [PATCH 1/2] prevent unecesary pre_deploy script executions --- .dotter/global.toml | 11 +++++++++-- .dotter/post_deploy.sh | 3 +++ .dotter/pre_deploy.sh | 9 +++++++++ .dotter/work-laptop.toml | 2 +- config/zsh/zshrc | 20 ++++++++++++++++++++ 5 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 .dotter/post_deploy.sh diff --git a/.dotter/global.toml b/.dotter/global.toml index 3ea2fed..6fcfa77 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -7,7 +7,7 @@ header = ".dotter/handlebars_helpers/header.rhai" # CLI package [cli] -depends = ["nvim", "zsh"] +depends = ["nvim", "zsh", "fzf", "starship"] [cli.variables] nerd_font = "JetBrainsMono" @@ -15,7 +15,6 @@ nerd_font = "JetBrainsMono" [cli.files] "config/bat" = "~/.config/bat" "config/sesh" = "~/.config/sesh" -"config/starship.toml" = "~/.config/starship.toml" "config/tmux" = "~/.config/tmux" "config/yazi" = "~/.config/yazi" "config/zellij" = "~/.config/zellij" @@ -34,8 +33,13 @@ depends = ["rust"] "config/zsh/aliases" = {target = "~/.config/zsh/aliases", type="symbolic"} "config/zsh/completions" = {target = "~/.config/zsh/completions", type = "symbolic"} "config/zsh/functions" = "~/.config/zsh/functions" + +[fzf.files] "config/fzf" = "~/.config/fzf" +[starship.files] +"config/starship.toml" = "~/.config/starship.toml" + [nushell.files] "config/nushell" = "~/.config/nushell" @@ -44,3 +48,6 @@ depends = ["rust"] [rust.variables] cargo.packages = [] + +[mise.files] +"config/mise" = "~/.config/mise" diff --git a/.dotter/post_deploy.sh b/.dotter/post_deploy.sh new file mode 100644 index 0000000..db1b97d --- /dev/null +++ b/.dotter/post_deploy.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +sha256sum .dotter/cache/.dotter/pre_deploy.sh >.dotter/cache/pre_deploy.checksum diff --git a/.dotter/pre_deploy.sh b/.dotter/pre_deploy.sh index f767eb5..9b30d7a 100644 --- a/.dotter/pre_deploy.sh +++ b/.dotter/pre_deploy.sh @@ -2,6 +2,15 @@ # shellcheck disable=all # This is a handlerbars template, so ignore issues + +checksum_file=".dotter/cache/pre_deploy.checksum" + +if [[ -e "$checksum_file" ]] && sha256sum --check "$checksum_file" >/dev/null 2>&1; then + echo "Pre deploy script has not changed, skiping script execution" + echo "To override this, remove the checksum file: $checksum_file" + exit 0 +fi + {{!~ Detect the distribution ~}} {{~ assign "distro" (trim (command_output "awk -F= '/^ID=/ {print $2}' /etc/os-release | tr -d '\"'")) ~}} diff --git a/.dotter/work-laptop.toml b/.dotter/work-laptop.toml index 8e15648..9b0a673 100644 --- a/.dotter/work-laptop.toml +++ b/.dotter/work-laptop.toml @@ -1,5 +1,5 @@ includes = [".dotter/machines/fedora.toml"] -packages = ["cli", "dev"] +packages = ["cli", "dev", "mise"] [files] diff --git a/config/zsh/zshrc b/config/zsh/zshrc index c0cdda6..21c40f2 100644 --- a/config/zsh/zshrc +++ b/config/zsh/zshrc @@ -115,6 +115,9 @@ setopt hist_find_no_dups # case insensitive completion zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" + +{{ #if dotter.packages.fzf }} + zstyle ':completion:*' menu no zstyle ':fzf-tab:*' show-group full zstyle ':fzf-tab:*' continuous-trigger '/' @@ -153,6 +156,8 @@ zstyle ':fzf-tab:complete:git-checkout:*' fzf-preview \ # TLDR zstyle ':fzf-tab:complete:tldr:argument-1' fzf-preview 'tldr --color always $word' +{{ /if }} + # ╭──────────────────────────────────────────────────────────╮ # │ ZSH Options │ # ╰──────────────────────────────────────────────────────────╯ @@ -163,7 +168,10 @@ setopt GLOB_DOTS # ╭──────────────────────────────────────────────────────────╮ # │ Source other files │ # ╰──────────────────────────────────────────────────────────╯ + +{{ #if dotter.packages.fzf }} source $HOME/.config/fzf/fzfrc +{{ /if }} # this prevents errors and not loading some files for file in $HOME/.config/zsh/**/*.zsh; do @@ -173,7 +181,19 @@ done # ╭──────────────────────────────────────────────────────────╮ # │ Init external programs │ # ╰──────────────────────────────────────────────────────────╯ + +{{ #if dotter.packages.fzf }} eval "$(fzf --zsh)" +{{ /if ~}} + +{{ #if (is_executable "zoxide") }} eval "$(zoxide init --cmd cd zsh)" +{{ /if ~}} + +{{ #if dotter.packages.starship }} eval "$(starship init zsh)" +{{ /if ~}} + +{{ #if dotter.packages.mise }} eval "$(mise activate zsh)" +{{ /if ~}} From ea5957f6d445bbea741202dbf48fccf704cffedd Mon Sep 17 00:00:00 2001 From: aleidk Date: Wed, 20 Nov 2024 12:12:03 -0300 Subject: [PATCH 2/2] transform zsh files into templates --- config/zsh/zprofile | 45 +++++++++++++++++++++++++++------------------ config/zsh/zshrc | 3 +++ 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/config/zsh/zprofile b/config/zsh/zprofile index cd1614c..ebeea46 100644 --- a/config/zsh/zprofile +++ b/config/zsh/zprofile @@ -5,37 +5,46 @@ update_path() { } # Set manually -export DOTS="$HOME/.local/share/chezmoi" +export REPOS="$HOME/.local/share/chezmoi" +export DOTS="$REPOS/Private/dots" export EDITOR=nvim export VISUAL="$EDITOR" export QT_STYLE_OVERRIDE=kvantum export MOZ_ENABLE_WAYLAND=1 +update_path "$DOTS/scripts" +update_path "$HOME/.local/bin" +update_path "$HOME/bin" +update_path "/usr/local/bin" + # Dev Stuff +{{ #if (is_executable "npm") }} export NPM_PACKAGES="$HOME/.npm-packages" export NODE_PATH="$NPM_PACKAGES/lib/node_modules${NODE_PATH:+:$NODE_PATH}" -export PNPM_HOME="$HOME/.local/share/pnpm" -export ESLINT_USE_FLAT_CONFIG=true -# . "$HOME/.cargo/env" -# source "$HOME/.rye/env" # Unset manpath so we can inherit from /etc/manpath via the `manpath` # command unset MANPATH # delete if you already modified MANPATH elsewhere in your config export MANPATH="$NPM_PACKAGES/share/man:$(manpath)" -# PATH -update_path "/usr/local/bin" -update_path "$HOME/.local/bin" -update_path "$HOME/.cargo/bin/" -update_path "$HOME/.spicetify" -update_path "$DOTS/scripts" -update_path "$HOME/bin" update_path "$NPM_PACKAGES/bin" -update_path "$PNPM_HOME" -update_path "$HOME/.local/share/rtx/shims" -update_path "$HOME/.spicetify" +{{ /if }} -if [[ $OSTYPE =~ 'darwin' ]]; then - eval "$(/opt/homebrew/bin/brew shellenv)" -fi +{{ #if (is_executable "pnpm") }} +export PNPM_HOME="$HOME/.local/share/pnpm" +export ESLINT_USE_FLAT_CONFIG=true +update_path "$PNPM_HOME" +{{ /if }} + +{{ #if (is_executable "rye") }} +source "$HOME/.rye/env" +{{ /if }} + +{{ #if (is_executable "cargo") }} +. "$HOME/.cargo/env" +update_path "$HOME/.cargo/bin/" +{{ /if }} + +{{~ #if (eq (env_var "OS") "macos") }} +eval "$(/opt/homebrew/bin/brew shellenv)" +{{ /if ~}} diff --git a/config/zsh/zshrc b/config/zsh/zshrc index 21c40f2..33e96a1 100644 --- a/config/zsh/zshrc +++ b/config/zsh/zshrc @@ -26,7 +26,10 @@ zinit snippet "https://raw.githubusercontent.com/catppuccin/zsh-syntax-highlight zinit light zsh-users/zsh-syntax-highlighting zinit light zsh-users/zsh-completions zinit light zsh-users/zsh-autosuggestions + +{{ #if dotter.packages.fzf }} zinit light Aloxaf/fzf-tab +{{ /if }} # ╭──────────────────────────────────────────────────────────╮ # │ Oh My Zsh snippets │