{{/* 以下是套用到 ~/.zshrc ~/.bashrc 用的共通內容 */ -}}

{{/* ---- 設定ailas ------------------------------------------------------ */ -}}
# alias
alias gitu='git add . && git commit && git push'

{{/* ---- 設定環境變數 ---------------------------------------------------- */ -}}
# 設定預設編輯器
{{ if false -}} {{/* 不執行 */}}
{{ if eq .chezmoi.os "linux" }}
[ -n "$DISPLAY" ] && export EDITOR=kate|| export EDITOR=nvim
{{ else }}
export EDITOR=nvim
{{ end }}
{{ end -}}

export EDITOR=nvim
export VISUAL=nvim

{{/* ---- 設定與修復PATH路徑對應 ------------------------------------------- */ -}}

export PATH="$PATH:$HOME/bin"
export PATH="$PATH:$HOME/.local/bin" # Created by `pipx` on 2023-01-30 19:57:14

# PHP
PATH="$HOME/.config/composer/vendor/bin:$PATH"

# GoLang Path
export PATH="$PATH:$HOME/go/bin"

# Fix Python3 to python Path on macOS
if [ "$(uname -s)" = 'Darwin' ]; then
    export PATH=/usr/local/opt/python/libexec/bin:$PATH
fi

# Install ruby¬
# Based on "`brew --prefix ruby`/bin"¬
export PATH="/usr/local/opt/ruby/bin:$PATH"¬
# Based on "`gem environment gemdir`/bin"¬
export PATH="/usr/local/lib/ruby/gems/3.3.0/bin:$PATH"¬
export PATH="$HOME/.local/share/gem/ruby/3.3.0/bin:$PATH"

{{/* ---- 擴充功能 ------------------------------------------------------- */ -}}
# 圖片顯示
# 既然即使加入判斷後還是「進入函數定義段落且噴錯」，那就代表：zsh 在解析 .zshrc 時，在到達 if 邏輯前，就已經知道 imgcat 是 alias，並因此直接報錯，這是因為：
# ⚠️ 在 zsh 中，如果你寫 function_name() 這種形式，然後這個名稱之前被定義為 alias，會在 parse 階段直接錯誤，不會等到 if 判斷。
# 解決方式：延遲定義（用 eval 避開 parser）
# 你需要避免 zsh 在 parse 階段就看到 imgcat() 的寫法。可以這樣寫，透過 eval 延遲定義函數內容：
if ! alias imgcat &>/dev/null && ! functions imgcat &>/dev/null && command -v magick &>/dev/null; then
  eval '
  imgcat() {
    if [[ -z "$1" ]]; then
      echo "❌ 請指定圖片檔案，例如：imgcat ~/Pictures/foo.png"
      return 1
    fi

    magick "$1" -geometry 800x480 sixel:-
  }'
fi

#
# # ex - archive extractor
# # usage: ex <file>
ex ()
{
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2)   tar xjf $1   ;;
      *.tar.gz)    tar xzf $1   ;;
      *.bz2)       bunzip2 $1   ;;
      *.rar)       unrar x $1     ;;
      *.gz)        gunzip $1    ;;
      *.tar)       tar xf $1    ;;
      *.tbz2)      tar xjf $1   ;;
      *.tgz)       tar xzf $1   ;;
      *.zip)       unzip $1     ;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1      ;;
      *)           echo "'$1' cannot be extracted via ex()" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}