diff --git a/.github/workflows/automated_tests.yml b/.github/workflows/automated_tests.yml index e8fbfe3..c2dce03 100644 --- a/.github/workflows/automated_tests.yml +++ b/.github/workflows/automated_tests.yml @@ -65,14 +65,21 @@ jobs: if [ -d /home/runner ]; then homedir="/home/runner"; else homedir="/Users/runner"; fi mkdir -p ${homedir}/.config/chezmoi - echo '[data]' > ${homedir}/.config/chezmoi/chezmoi.toml - echo ' email = "test@test.com"' >> ${homedir}/.config/chezmoi/chezmoi.toml - echo ' github_user = "natelandau"' >> ${homedir}/.config/chezmoi/chezmoi.toml - echo ' dev_computer = false' >> ${homedir}/.config/chezmoi/chezmoi.toml - echo ' use_secrets = false' >> ${homedir}/.config/chezmoi/chezmoi.toml - echo ' personal_computer = false' >> ${homedir}/.config/chezmoi/chezmoi.toml - echo ' homelab_member = false' >> ${homedir}/.config/chezmoi/chezmoi.toml - echo ' zsh_dir = "${homedir}/.local/share/zsh"' >> ${homedir}/.config/chezmoi/chezmoi.toml + + cat > ${homedir}/.config/chezmoi/chezmoi.toml<< EOF + [data] + dev_computer = false + email = "test@test.com" + github_user = "natelandau" + homelab_member = false + is_ci_workflow = true # Set true only in CI test + personal_computer = false + use_secrets = false + xdgCacheDir = "${homedir}/.cache" + xdgConfigDir = "${homedir}/.config" + xdgDataDir = "${homedir}/.local/share" + xdgStateDir = "${homedir}/.local/state" + EOF # ---------------------------------------------- # Install chezmoi @@ -94,32 +101,54 @@ jobs: - name: Confirm dotfiles are installed if: startsWith(matrix.os, 'ubuntu') run: | + if [ -d /home/runner ]; then homedir="/home/runner"; else homedir="/Users/runner"; fi echo "------- Testing files -------" cd /home/runner # echo "pwd: $(pwd)" # ls -al + existing_files=( + .zshrc + .bashrc + .config/git/config + .ssh/config + .config/dotfile_source/080-linux.sh + .local/share/sed/stopwords.sed + ) + + missing_files=( + .config/dotfile_source/080-macos.sh + Library + ) + + installed_packages=( + jq + pygmentize + ) + # Confirm files exist - for file in .zshrc .bashrc .gitconfig .shell .ssh/config .shell/sourced/080-linux.sh; do - if [ ! -e $file ]; then + for file in ${existing_files[@]}; do + if [ ! -e "${homedir}/$file" ]; then echo "$file not found" exit 1 fi done # Confirm files don't exist - for file in Library .shell/sourced/080-macos.sh; do - if [ -e $file ]; then + for file in ${missing_files[@]} ; do + if [ -e "${homedir}/$file "]; then echo "$file found" exit 1 fi done - # Check apt packages - command -v htop 2>&1 >/dev/null || { echo "htop not found"; exit 1; } - - # Confirm python packages - command -v pygmentize 2>&1 >/dev/null || { echo "pygmentize not found"; exit 1; } + # Confirm packages are installed + for package in ${installed_packages[@]}; do + if [ ! $(command -v $package) ]; then + echo "$package not found" + exit 1 + fi + done # ---------------------------------------------- # MACOS: Confirm dotfiles are installed @@ -127,27 +156,50 @@ jobs: - name: Confirm dotfiles are installed if: startsWith(matrix.os, 'macos') run: | + if [ -d /home/runner ]; then homedir="/home/runner"; else homedir="/Users/runner"; fi + echo "------- Testing files -------" - cd /Users/runner + cd ${homedir} + + existing_files=( + .zshrc + .bashrc + .config/git/config + .config/nano/nanorc + .ssh/config + .config/dotfile_source/080-macos.sh + .local/share/sed/stopwords.sed + ) + + missing_files=( + .config/dotfile_source/080-linux.sh + ) + + installed_packages=( + jq + pygmentize + ) # Confirm files exist - for file in .zshrc .bashrc .gitconfig .shell .ssh/config Library .shell/sourced/080-macos.sh; do - if [ ! -e $file ]; then + for file in ${existing_files[@]}; do + if [ ! -e "${homedir}/$file" ]; then echo "$file not found" exit 1 fi done # Confirm files don't exist - for file in .shell/sourced/080-linux.sh; do - if [ -e $file ]; then + for file in ${missing_files[@]} ; do + if [ -e "${homedir}/$file" ]; then echo "$file found" exit 1 fi done - # Check homebrew packages - command -v htop 2>&1 >/dev/null || { echo "htop not found"; exit 1; } - - # Confirm python packages - command -v pygmentize 2>&1 >/dev/null || { echo "pygmentize not found"; exit 1; } + # Confirm packages are installed + for package in ${installed_packages[@]}; do + if [ ! $(command -v $package) ]; then + echo "$package not found" + exit 1 + fi + done diff --git a/.gitignore b/.gitignore index 10cb09f..ea2b035 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ data.json .venv .DS_Store reports +.mypy_cache +__pycache__ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7c498b6..e58c826 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ default_stages: [commit, manual] fail_fast: true repos: - repo: "https://github.com/commitizen-tools/commitizen" - rev: v3.29.0 + rev: v3.29.1 hooks: - id: commitizen - id: commitizen-branch @@ -33,7 +33,7 @@ repos: - id: trailing-whitespace - repo: "https://github.com/crate-ci/typos" - rev: v1.24.6 + rev: v1.25.0 hooks: - id: typos diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c1145ba --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "files.associations": { + ".chezmoiremove": "plaintext", + "*.toml.tmpl": "plaintext", + ".chezmoiignore": "plaintext" + } +} diff --git a/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist b/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist index 85d9867..89f1837 100644 --- a/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist +++ b/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist @@ -1305,7 +1305,7 @@ Columns 140 Command - /usr/local/bin/bash + Cursor Color Alpha Component @@ -1689,6 +1689,8 @@ Red Component 0.87367779016494751 + Load Shell Integration Automatically + Log Directory Minimum Contrast diff --git a/dotfiles/.chezmoi.toml.tmpl b/dotfiles/.chezmoi.toml.tmpl index 236bb9f..745fa70 100644 --- a/dotfiles/.chezmoi.toml.tmpl +++ b/dotfiles/.chezmoi.toml.tmpl @@ -9,9 +9,13 @@ email = {{ $email | quote }} github_user = "natelandau" homelab_member = {{ $homelab_member }} + is_ci_workflow = false # Set true only in CI test personal_computer = {{ $personal_computer }} use_secrets = {{ $use_secrets }} - zsh_dir = "{{ .chezmoi.homeDir }}/.local/share/zsh" + xdgCacheDir = "{{ .chezmoi.homeDir }}/.cache" + xdgConfigDir = "{{ .chezmoi.homeDir }}/.config" + xdgDataDir = "{{ .chezmoi.homeDir }}/.local/share" + xdgStateDir = "{{ .chezmoi.homeDir }}/.local/state" [diff] {{ if lookPath "delta" -}}command = "delta" diff --git a/dotfiles/.chezmoidata/onepassword.toml b/dotfiles/.chezmoidata/onepassword.toml index ae784a8..b3938f3 100644 --- a/dotfiles/.chezmoidata/onepassword.toml +++ b/dotfiles/.chezmoidata/onepassword.toml @@ -2,8 +2,16 @@ git_stop_words = "op://yc7nim47s6rch4ehrvfsz5icei/vgapmuu57fs3ic44wyupk2orgi/notesPlain" [secrets] - bws_zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/bws_zoom_link" - calendly_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/calendly" - email_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/default_email" - gitea_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/gitea_url" - zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/zoom_link" + bws_zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/bws_zoom_link" + calendly_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/calendly" + email_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/default_email" + gitea_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/gitea_url" + github_personal_access_token = "op://igqbsqdriuefyzvljd7pom5tum/ikd4inhzvm5pvo2bkyrnkuobh4/personal_access_token" + homebrew_github_token = "op://igqbsqdriuefyzvljd7pom5tum/ikd4inhzvm5pvo2bkyrnkuobh4/homebrew_access_token" + radarr_api_key = "op://igqbsqdriuefyzvljd7pom5tum/yevda4magqej3yawqf573rijd4/api_key" + radarr_url = "op://igqbsqdriuefyzvljd7pom5tum/yevda4magqej3yawqf573rijd4/website" + sonarr_api_key = "op://igqbsqdriuefyzvljd7pom5tum/5zk3pkmm2wbk73ss4dlli6dvz4/api_key" + sonarr_url = "op://igqbsqdriuefyzvljd7pom5tum/5zk3pkmm2wbk73ss4dlli6dvz4/website" + tmdb_api_key = "op://igqbsqdriuefyzvljd7pom5tum/7l5gtxkd23og5wzawz5etq6lju/api_key" + valentina_github_token = "op://igqbsqdriuefyzvljd7pom5tum/ikd4inhzvm5pvo2bkyrnkuobh4/valentina_access_token" + zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/zoom_link" diff --git a/dotfiles/.chezmoidata/packages.toml b/dotfiles/.chezmoidata/packages.toml index 79031b8..317dd7f 100644 --- a/dotfiles/.chezmoidata/packages.toml +++ b/dotfiles/.chezmoidata/packages.toml @@ -90,6 +90,7 @@ "mas", # Mac App Store command-line interface "mc", # Midnight Commander "most", # Pager + "nano", "ncdu", # NCurses Disk Usage "ncurses", # Text-based UI library "openssl", # SSL/TLS cryptography library diff --git a/dotfiles/.chezmoiremove b/dotfiles/.chezmoiremove index 465b80d..330f60d 100644 --- a/dotfiles/.chezmoiremove +++ b/dotfiles/.chezmoiremove @@ -1,9 +1,19 @@ -bin/pull_all_repos +.DS_Store -# Migrate to zoxide -.z +# Prepend with a `/` to specify a specific path relative to $HOME. -# Migrate zsh data to ~/.local/share/zsh -.zsh_history -.zfunc/_eza -.zfunc/poetry +# migrate to XDG directories +/.curlrc +/.gitignore +/.gitconfig +/.nanorc +/.lesshst +/.digrc +/.wget-hsts +/.zcompdump +/.python_history +/.local/share/zsh/history +/.sed/htmlDecode.sed +/.sed/htmlEncode.sed +/.sed/stopwords.sed +/.zsh_history diff --git a/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl index 2e79d25..e07ed13 100644 --- a/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl @@ -1,4 +1,4 @@ -{{- if eq .chezmoi.os "linux" -}} +{{- if and (eq .chezmoi.os "linux") (not .is_ci_workflow) -}} #!/usr/bin/env bash {{ template "shared_script_utils.bash" . }} diff --git a/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl index ceccecc..91a697f 100644 --- a/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl @@ -13,7 +13,7 @@ if [[ ! $(command -v eza) ]]; then fi sudo mkdir -p /etc/apt/keyrings - wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg + wget --hsts-file='{{ .xdgDataDir }}/wget-hsts' -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list sudo apt update diff --git a/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl index 84cc933..1989e5c 100644 --- a/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl @@ -1,4 +1,4 @@ -{{- if and (eq .chezmoi.os "linux") (.dev_computer) (eq .chezmoi.arch "amd64" ) -}} +{{- if and (eq .chezmoi.os "linux") (.dev_computer) (eq .chezmoi.arch "amd64" ) (not .is_ci_workflow) -}} #!/usr/bin/env bash {{ template "shared_script_utils.bash" . }} @@ -47,7 +47,7 @@ pushd "${TMP_DIR}" &>/dev/null || exit DEB="gcm-linux_{{.chezmoi.arch }}.${LATEST_VERSION}.deb" -wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v${LATEST_VERSION}/${DEB} +wget --hsts-file='{{ .xdgDataDir }}/wget-hsts' https://github.com/git-ecosystem/git-credential-manager/releases/download/v${LATEST_VERSION}/${DEB} sudo dpkg -i "${DEB}" rm "${DEB}" diff --git a/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl b/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl index 5552cb5..98393df 100644 --- a/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl +++ b/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl @@ -1,3 +1,4 @@ +{{- if not .is_ci_workflow -}} #!/usr/bin/env bash {{ template "shared_script_utils.bash" . }} {{ $current_os := .chezmoi.os }} @@ -62,3 +63,4 @@ uv run -q "${INSTALL_SCRIPT}" --binary-name="{{ $binary.name }}" --repository="{ {{ end }} {{ end }} _safeExit_ +{{- end }} diff --git a/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl index 0becddd..e5ae8ba 100644 --- a/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl @@ -11,21 +11,23 @@ if [ ! "$(command -v unzip)" ]; then fi # Check if the nano syntax highlighting directory exists -if [ ! -d "${HOME}/.nano" ]; then - header "Installing nano syntax highlighting..." - nano_dir="${HOME}/.nano" +NANO_DIR="{{ .xdgDataDir }}/nano" +if [ ! -e "${NANO_DIR}/conf.nanorc" ]; then + header "Installing nano syntax highlighting..." - mkdir -p "${nano_dir}" + if [ ! -d "${NANO_DIR}" ]; then + mkdir -p "${NANO_DIR}" + fi - wget -O "${nano_dir}/nanorc.zip" https://github.com/scopatz/nanorc/archive/master.zip + wget --hsts-file='{{ .xdgDataDir }}/wget-hsts' -O "${NANO_DIR}/nanorc.zip" https://github.com/scopatz/nanorc/archive/master.zip - pushd "${nano_dir}" >/dev/null || exit + pushd "${NANO_DIR}" >/dev/null || exit - unzip -o "${nano_dir}/nanorc.zip" - mv nanorc-master/* "${nano_dir}/" + unzip -o "${NANO_DIR}/nanorc.zip" + mv nanorc-master/* "${NANO_DIR}/" rm -rf nanorc-master - rm "${nano_dir}/nanorc.zip" + rm "${NANO_DIR}/nanorc.zip" popd >/dev/null || exit diff --git a/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl index f589ff3..5453125 100644 --- a/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl @@ -1,5 +1,3 @@ -{{- if lookPath "uv" -}} - #!/usr/bin/env bash {{ template "shared_script_utils.bash" . }} @@ -58,5 +56,3 @@ done success "Python packages installed" _safeExit_ - -{{- end }} diff --git a/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl index 03c8616..fb55a10 100644 --- a/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl @@ -1,13 +1,12 @@ -{{- /* Don't run this script in CI, ci username is runner */ -}} -{{- if (and (eq .chezmoi.os "darwin") (ne .chezmoi.username "runner")) -}} +{{- if and (eq .chezmoi.os "darwin") (not .is_ci_workflow) -}} #!/usr/bin/env bash {{ template "shared_script_utils.bash" . }} # Grab the hash of the osx-defaults.sh script to run it when changed -# osx-defaults.sh hash: {{ include "dot_shell/scripts/executable_osx-defaults.sh.tmpl" | sha256sum }} +# osx-defaults.sh hash: {{ include "bin/executable_osx-defaults.sh.tmpl" | sha256sum }} -osx_script=${HOME}/.shell/scripts/osx-defaults.sh +osx_script=${HOME}/bin/osx-defaults.sh header "Running OS X defaults script" sudo "${osx_script}" diff --git a/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl index f529f46..01425b3 100644 --- a/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl @@ -5,7 +5,7 @@ export HOMEBREW_NO_INSTALL_UPGRADE=TRUE export HOMEBREW_CASK_OPTS="--appdir=/Applications" -export HOMEBREW_NO_INSTALL_CLEANUP=FALSE +export HOMEBREW_NO_INSTALL_CLEANUP=1 formulae=( {{ range $package := .packages.homebrew.common.formulae }} @@ -73,16 +73,15 @@ for formula in ${formulae[@]}; do fi done +{{ if not .is_ci_workflow }} for cask in ${casks[@]}; do if ! _inArray_ -i "${cask}" "${currently_installed_casks[@]}"; then brew install -q --cask ${cask} fi done +{{ end }} -_safeExit_ - -brew cleanup success "Homebrew packages installed" _safeExit_ diff --git a/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl index c3a7b5b..7fa15d6 100644 --- a/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl @@ -1,4 +1,4 @@ -{{- if eq .chezmoi.os "darwin" -}} +{{- if and (eq .chezmoi.os "darwin") (not .is_ci_workflow) -}} #!/usr/bin/env bash {{ template "shared_script_utils.bash" . }} diff --git a/dotfiles/.chezmoitemplates/halp_config.toml b/dotfiles/.chezmoitemplates/halp_config.toml index b0d2913..c6098bb 100644 --- a/dotfiles/.chezmoitemplates/halp_config.toml +++ b/dotfiles/.chezmoitemplates/halp_config.toml @@ -15,7 +15,7 @@ comment_placement = "BEST" file_exclude_regex = '0[0-3][0-9]-.*\.sh$' # Globs to match files against -file_globs = ["~/.shell/sourced/**/*.sh"] +file_globs = ["{{ .xdgConfigDir }}/dotfile_sourced/**/*.sh"] # The name of the uncategorized category uncategorized_name = "uncategorized" diff --git a/dotfiles/.chezmoitemplates/usrbin_config.toml b/dotfiles/.chezmoitemplates/usrbin_config.toml index 0650bbc..757025d 100644 --- a/dotfiles/.chezmoitemplates/usrbin_config.toml +++ b/dotfiles/.chezmoitemplates/usrbin_config.toml @@ -55,8 +55,8 @@ [autopull] repo_dirs = [ - {{- if joinPath .zsh_dir "plugins" | lstat }} - "{{ .zsh_dir }}/plugins", + {{- if joinPath .xdgDataDir "zsh" "plugins" | lstat }} + "{{ .xdgDataDir }}/zsh/plugins", {{- end }} {{- if joinPath .chezmoi.homeDir "repos" | lstat }} "~/repos", diff --git a/dotfiles/.chezmoitemplates/vid-cleaner_config.toml b/dotfiles/.chezmoitemplates/vid-cleaner_config.toml index 857e279..ba72de8 100644 --- a/dotfiles/.chezmoitemplates/vid-cleaner_config.toml +++ b/dotfiles/.chezmoitemplates/vid-cleaner_config.toml @@ -9,11 +9,10 @@ log_to_file = false keep_languages = ["en"] # External services used to determine the original language of a movie or TV show - -radarr_api_key = "{{- range (onepassword "yevda4magqej3yawqf573rijd4").fields }}{{- if eq .label "api_key" }}{{ .value }}{{- end }}{{- end }}" -radarr_url = "{{- range (onepassword "yevda4magqej3yawqf573rijd4").urls }}{{- if eq .label "website" }}{{- .href }}{{- end }}{{- end }}" -sonarr_api_key = "{{- range (onepassword "5zk3pkmm2wbk73ss4dlli6dvz4").fields }}{{- if eq .label "api_key" }}{{ .value }}{{- end }}{{- end }}" -sonarr_url = "{{- range (onepassword "5zk3pkmm2wbk73ss4dlli6dvz4").urls }}{{- if eq .label "website" }}{{- .href }}{{- end }}{{- end }}" -tmdb_api_key = "{{- range (onepassword "42el6epcf5c55hi2kyn2kmwwxq").fields }}{{- if eq .label "api_key" }}{{ .value }}{{- end }}{{- end }}" +radarr_api_key = "{{- onepasswordRead .secrets.radarr_api_key }}" +radarr_url = "{{- onepasswordRead .secrets.radarr_url }}" +sonarr_api_key = "{{- onepasswordRead .secrets.sonarr_api_key }}" +sonarr_url = "{{- onepasswordRead .secrets.sonarr_url }}" +tmdb_api_key = "{{- onepasswordRead .secrets.tmdb_api_key }}" {{- end }} diff --git a/dotfiles/Library/Application Support/espanso/match/emoji.yml b/dotfiles/Library/Application Support/espanso/match/emoji.yml new file mode 100644 index 0000000..16fda50 --- /dev/null +++ b/dotfiles/Library/Application Support/espanso/match/emoji.yml @@ -0,0 +1,74 @@ +--- +matches: + - trigger: "::rofl" + replace: "🤣" + - trigger: "::joy" + replace: "😂" + - trigger: "::smile" + replace: "😊" + - trigger: "::grin" + replace: "😁" + - trigger: "::wink" + replace: "😉" + - trigger: "::sad" + replace: "😞" + - trigger: "::cry" + replace: "😢" + - trigger: "::angry" + replace: "😠" + - trigger: "::love" + replace: "❤️" + - trigger: "::like" + replace: "👍" + - trigger: "::dislike" + replace: "👎" + - trigger: "::ok" + replace: "👌" + - trigger: "::clap" + replace: "👏" + - trigger: "::pray" + replace: "🙏" + - trigger: "::fire" + replace: "🔥" + - trigger: "::poop" + replace: "💩" + - trigger: "::heart" + replace: "❤️" + - trigger: "::grimmace" + replace: "😬" + - trigger: "::tongue" + replace: "😛" + - trigger: "::sunglasses" + replace: "😎" + - trigger: "::smirk" + replace: "😏" + - trigger: "::shrug" + replace: "🤷" + - trigger: "::face" + replace: "🤦" + - trigger: "::eyes" + replace: "👀" + - trigger: "::tree" + replace: "🌳" + - trigger: "::gun" + replace: "🔫" + - trigger: "::pistol" + replace: "🔫" + - trigger: "::bomb" + replace: "💣" + - trigger: "::rocket" + replace: "🚀" + - trigger: "::star" + replace: "⭐" + - trigger: "::sparkles" + replace: "✨" + - trigger: "::party" + replace: "🎉" + - trigger: "::celebrate" + replace: "🎉🥳🎊" + - trigger: "::shoot" + replace: "😞🔫" + - trigger: "::dead" + replace: "💀" + - trigger: "::spy" + replace: "🌳👀🌳" diff --git a/dotfiles/dot_shell/scripts/executable_debian-startup.sh.tmpl b/dotfiles/bin/executable_linux-startup.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/scripts/executable_debian-startup.sh.tmpl rename to dotfiles/bin/executable_linux-startup.sh.tmpl diff --git a/dotfiles/dot_shell/scripts/executable_osx-defaults.sh.tmpl b/dotfiles/bin/executable_osx-defaults.sh.tmpl similarity index 98% rename from dotfiles/dot_shell/scripts/executable_osx-defaults.sh.tmpl rename to dotfiles/bin/executable_osx-defaults.sh.tmpl index 74fc249..cb2aa5d 100644 --- a/dotfiles/dot_shell/scripts/executable_osx-defaults.sh.tmpl +++ b/dotfiles/bin/executable_osx-defaults.sh.tmpl @@ -9,9 +9,6 @@ # and sets up preferences and configurations for all the built-in services and # apps. Third-party app config should be done elsewhere. # -# Options: -# --no-restart: Don't restart any apps or services after running the script. -# # If you want to figure out what default needs changing, do the following: # # 1. `cd /tmp` @@ -880,17 +877,6 @@ defaults write com.google.Chrome.canary DisablePrintPreview -bool true # Enable the debug menu in Address Book defaults write com.apple.addressbook ABShowDebugMenu -bool true -############################################################################### -# Kill/restart affected applications # -############################################################################### - -# Restart affected applications if `--no-restart` flag is not present. -# if [[ ! ($* == *--no-restart*) ]]; then -# for app in "cfprefsd" "Dock" "Finder" "Mail" "Messages" "Safari" "SystemUIServer" "Terminal"; do -# killall "${app}" >/dev/null 2>&1 -# done -# fi - notice "osx-defaults: Done. Note that some of these changes require a logout/restart to take effect." _safeExit_ diff --git a/dotfiles/dot_bashrc.tmpl b/dotfiles/dot_bashrc.tmpl index 6f38c53..ce44b4b 100644 --- a/dotfiles/dot_bashrc.tmpl +++ b/dotfiles/dot_bashrc.tmpl @@ -14,7 +14,7 @@ umask 002 # Locations containing files *.bash to be sourced to your environment configFileLocations=( - "${HOME}/.shell/sourced" + "{{ .xdgConfigDir }}/dotfile_source" ) for configFileLocation in "${configFileLocations[@]}"; do diff --git a/dotfiles/dot_config/atuin/config.toml b/dotfiles/dot_config/atuin/config.toml.tmpl similarity index 97% rename from dotfiles/dot_config/atuin/config.toml rename to dotfiles/dot_config/atuin/config.toml.tmpl index 5cd0cf2..b097ffb 100644 --- a/dotfiles/dot_config/atuin/config.toml +++ b/dotfiles/dot_config/atuin/config.toml.tmpl @@ -1,5 +1,5 @@ ## where to store your database. -db_path = "~/.local/share/atuin/history.db" +db_path = "{{ .xdgDataDir }}/atuin/history.db" ## where to store your encryption key, default is your system data directory # key_path = "~/.key" diff --git a/dotfiles/dot_curlrc b/dotfiles/dot_config/dot_curlrc similarity index 100% rename from dotfiles/dot_curlrc rename to dotfiles/dot_config/dot_curlrc diff --git a/dotfiles/dot_shell/sourced/001-bind-keys.zsh b/dotfiles/dot_config/dotfile_source/001-bind-keys.zsh similarity index 100% rename from dotfiles/dot_shell/sourced/001-bind-keys.zsh rename to dotfiles/dot_config/dotfile_source/001-bind-keys.zsh diff --git a/dotfiles/dot_shell/sourced/001-options.bash b/dotfiles/dot_config/dotfile_source/001-options.bash similarity index 98% rename from dotfiles/dot_shell/sourced/001-options.bash rename to dotfiles/dot_config/dotfile_source/001-options.bash index 52eb5ab..98c163b 100644 --- a/dotfiles/dot_shell/sourced/001-options.bash +++ b/dotfiles/dot_config/dotfile_source/001-options.bash @@ -24,6 +24,7 @@ export HISTTIMEFORMAT="[%F %T] " # Lots o' history. export HISTSIZE=10000 export HISTFILESIZE=10000 +export HISTFILE={{ .xdgStateDir }}/bash/history # Avoid duplicate entries HISTCONTROL="erasedups:ignoreboth" diff --git a/dotfiles/dot_shell/sourced/001-options.zsh.tmpl b/dotfiles/dot_config/dotfile_source/001-options.zsh.tmpl similarity index 98% rename from dotfiles/dot_shell/sourced/001-options.zsh.tmpl rename to dotfiles/dot_config/dotfile_source/001-options.zsh.tmpl index 171c6d1..c466f58 100644 --- a/dotfiles/dot_shell/sourced/001-options.zsh.tmpl +++ b/dotfiles/dot_config/dotfile_source/001-options.zsh.tmpl @@ -40,7 +40,7 @@ setopt share_history # share history between different instances of the unsetopt correct_all unsetopt correct -HISTFILE={{ .zsh_dir }}/history +HISTFILE={{ .xdgStateDir }}/zsh/history HISTSIZE=100000 SAVEHIST=${HISTSIZE} HISTDUP=erase @@ -63,7 +63,7 @@ zstyle ':completion:*:match:*' original only zstyle ':completion:*:approximate:*' max-errors 1 numeric zstyle ':completion:*' use-cache on -zstyle ':completion:*' cache-path "{{ .zsh_dir }}/cache" +zstyle ':completion:*' cache-path "{{ .xdgCacheDir }}/zsh/cache" zstyle ':completion:*' list-colors '' zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' diff --git a/dotfiles/dot_shell/sourced/001-plugins.zsh.tmpl b/dotfiles/dot_config/dotfile_source/001-plugins.zsh.tmpl similarity index 94% rename from dotfiles/dot_shell/sourced/001-plugins.zsh.tmpl rename to dotfiles/dot_config/dotfile_source/001-plugins.zsh.tmpl index ed091e5..4fa4a73 100644 --- a/dotfiles/dot_shell/sourced/001-plugins.zsh.tmpl +++ b/dotfiles/dot_config/dotfile_source/001-plugins.zsh.tmpl @@ -6,7 +6,7 @@ _pluginload_() { local giturl="$1" local plugin_name=${${1##*/}%.git} - local plugindir="${ZPLUGINDIR:-{{ .zsh_dir }}/plugins}/$plugin_name" + local plugindir="${ZPLUGINDIR:-{{ .xdgDataDir }}/zsh/plugins}/$plugin_name" # clone if the plugin isn't there already if [[ ! -d "${plugindir}" ]]; then @@ -41,7 +41,7 @@ _pluginload_() { } # set where we should store Zsh plugins -ZPLUGINDIR="{{ .zsh_dir }}/plugins" +ZPLUGINDIR="{{ .xdgDataDir }}/zsh/plugins" # add your plugins to this list plugins=( @@ -77,7 +77,7 @@ unset repo # Update ZSH Plugins function zshup () { - local plugindir="${ZPLUGINDIR:-{{ .zsh_dir }}/plugins}" + local plugindir="${ZPLUGINDIR:-{{ .xdgDataDir }}/zsh/plugins}" for d in $plugindir/*/.git(/); do echo "Updating ${d:h:t}..." command git -C "${d:h}" pull --ff --recurse-submodules --depth 1 --rebase --autostash diff --git a/dotfiles/dot_config/dotfile_source/001-xdg.sh.tmpl b/dotfiles/dot_config/dotfile_source/001-xdg.sh.tmpl new file mode 100644 index 0000000..a33fcaf --- /dev/null +++ b/dotfiles/dot_config/dotfile_source/001-xdg.sh.tmpl @@ -0,0 +1,25 @@ +# Configures XDG specification environment variables. +# https://specifications.freedesktop.org/basedir-spec/latest/ + +# A single base directory relative to which user-specific data files should be written +export XDG_DATA_HOME={{ .xdgDataDir }} + +# A single base directory relative to which user-specific configuration files should be written +export XDG_CONFIG_HOME={{ .xdgConfigDir }} + +# A single base directory relative to which user-specific state data should be written +export XDG_STATE_HOME={{ .xdgStateDir }} + +# A single base directory relative to which user-specific non-essential (cached) data should be written +export XDG_CACHE_HOME={{ .xdgCacheDir }} + +# Reconfigure applications to use these directories +# #################################### +export ANSIBLE_HOME="${XDG_DATA_HOME}"/ansible +export CARGO_HOME="${XDG_DATA_HOME}"/cargo +export PYTHONSTARTUP="${XDG_CONFIG_HOME}"/python/pythonrc +export PYTHON_HISTORY="${XDG_STATE_HOME}"/python_history +export NPM_CONFIG_USERCONFIG="${XDG_CONFIG_HOME}"/npm/npmrc +export ZDOTDIR="${XDG_CONFIG_HOME}"/zsh +export RUSTUP_HOME="${XDG_DATA_HOME}"/rustup +alias wget="wget --hsts-file='${XDG_DATA_HOME}/wget-hsts'" diff --git a/dotfiles/dot_shell/sourced/0040-path.sh b/dotfiles/dot_config/dotfile_source/0040-path.sh similarity index 94% rename from dotfiles/dot_shell/sourced/0040-path.sh rename to dotfiles/dot_config/dotfile_source/0040-path.sh index 3567f9c..ffbe238 100644 --- a/dotfiles/dot_shell/sourced/0040-path.sh +++ b/dotfiles/dot_config/dotfile_source/0040-path.sh @@ -16,3 +16,5 @@ for _path in "${_myPaths[@]}"; do fi fi done + +unset _myPaths _path diff --git a/dotfiles/dot_shell/sourced/010-exports.sh.tmpl b/dotfiles/dot_config/dotfile_source/010-exports.sh.tmpl similarity index 83% rename from dotfiles/dot_shell/sourced/010-exports.sh.tmpl rename to dotfiles/dot_config/dotfile_source/010-exports.sh.tmpl index c2c68cd..fcc953e 100644 --- a/dotfiles/dot_shell/sourced/010-exports.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/010-exports.sh.tmpl @@ -6,7 +6,9 @@ export EDITOR="$(command -v code nano | head -n 1)" {{ if and (.use_secrets) (.dev_computer) -}} -export HOMEBREW_GITHUB_API_TOKEN="{{ range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{ if eq .label "HOMEBREW_GITHUB_API_TOKEN" }}{{ .value }}{{ end }}{{ end }}" +# Authenticate github cli (gh) with a personal access token +# Commented out b/c gh copilot CLI doesn't work with a personal access token +# export GH_TOKEN="{{ onepasswordRead .secrets.github_personal_access_token }}" # Valentina env variables for local development on natenate test server # natenate-test-bot @@ -19,7 +21,7 @@ export VALENTINA_OWNER_CHANNELS="{{- range (onepassword "oktogknogbneoifxxtnefno export VALENTINA_AWS_ACCESS_KEY_ID="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_AWS_ACCESS_KEY_ID" }}{{- .value }}{{- end }}{{- end }}" export VALENTINA_AWS_SECRET_ACCESS_KEY="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_AWS_SECRET_ACCESS_KEY" }}{{- .value }}{{- end }}{{- end }}" export VALENTINA_S3_BUCKET_NAME="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_S3_BUCKET_NAME" }}{{- .value }}{{- end }}{{- end }}" -export VALENTINA_GITHUB_TOKEN="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_GITHUB_TOKEN" }}{{- .value }}{{- end }}{{- end }}" +export VALENTINA_GITHUB_TOKEN={{- onepasswordRead .secrets.homebrew_github_token }} export VALENTINA_GITHUB_REPO="natelandau/valentina" {{- end }} diff --git a/dotfiles/dot_shell/sourced/020-alerting.sh b/dotfiles/dot_config/dotfile_source/020-alerting.sh similarity index 100% rename from dotfiles/dot_shell/sourced/020-alerting.sh rename to dotfiles/dot_config/dotfile_source/020-alerting.sh diff --git a/dotfiles/dot_shell/sourced/020-colors.sh b/dotfiles/dot_config/dotfile_source/020-colors.sh similarity index 100% rename from dotfiles/dot_shell/sourced/020-colors.sh rename to dotfiles/dot_config/dotfile_source/020-colors.sh diff --git a/dotfiles/dot_shell/sourced/030-prompt.bash b/dotfiles/dot_config/dotfile_source/030-prompt.bash similarity index 100% rename from dotfiles/dot_shell/sourced/030-prompt.bash rename to dotfiles/dot_config/dotfile_source/030-prompt.bash diff --git a/dotfiles/dot_shell/sourced/030-prompt.zsh b/dotfiles/dot_config/dotfile_source/030-prompt.zsh similarity index 100% rename from dotfiles/dot_shell/sourced/030-prompt.zsh rename to dotfiles/dot_config/dotfile_source/030-prompt.zsh diff --git a/dotfiles/dot_shell/sourced/060-common_aliases.sh.tmpl b/dotfiles/dot_config/dotfile_source/060-common_aliases.sh.tmpl similarity index 97% rename from dotfiles/dot_shell/sourced/060-common_aliases.sh.tmpl rename to dotfiles/dot_config/dotfile_source/060-common_aliases.sh.tmpl index a498bbd..03a60f0 100644 --- a/dotfiles/dot_shell/sourced/060-common_aliases.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/060-common_aliases.sh.tmpl @@ -8,6 +8,7 @@ alias .6='cd ../../../../../../' alias ~="cd ~" alias ax='chmod a+x' # system: make file executable alias path='echo -e ${PATH//:/\\n}' # system: Echo all executable Paths +alias fpath='echo -e ${FPATH//:/\\n}' # system: Echo fpath alias untar='tar -zxvf' # Extract tar.gz file alias mktar='tar -cvzf' # Create a tar.gz file alias numfiles='echo $(ls -1 | wc -l)' # Count of non-hidden files in current dir diff --git a/dotfiles/dot_shell/sourced/060-common_functions.sh b/dotfiles/dot_config/dotfile_source/060-common_functions.sh.tmpl similarity index 98% rename from dotfiles/dot_shell/sourced/060-common_functions.sh rename to dotfiles/dot_config/dotfile_source/060-common_functions.sh.tmpl index de34202..b906d91 100644 --- a/dotfiles/dot_shell/sourced/060-common_functions.sh +++ b/dotfiles/dot_config/dotfile_source/060-common_functions.sh.tmpl @@ -293,7 +293,7 @@ htmldecode() { # USAGE: htmlDecode local sedLocation - sedLocation="${HOME}/.sed/htmlDecode.sed" + sedLocation="{{ .xdgDataDir }}/sed/htmlDecode.sed" if [ -f "${sedLocation}" ]; then echo "${1}" | sed -f "${sedLocation}" else @@ -306,7 +306,7 @@ htmlencode() { # USAGE: htmlEncode local sedLocation - sedLocation="${HOME}/.sed/htmlEncode.sed" + sedLocation="{{ .xdgDataDir }}/sed/htmlEncode.sed" if [ -f "${sedLocation}" ]; then echo "${1}" | sed -f "${sedLocation}" else diff --git a/dotfiles/dot_shell/sourced/070-better-defaults.sh.tmpl b/dotfiles/dot_config/dotfile_source/070-better-defaults.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/070-better-defaults.sh.tmpl rename to dotfiles/dot_config/dotfile_source/070-better-defaults.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/080-linux.sh.tmpl b/dotfiles/dot_config/dotfile_source/080-linux.sh.tmpl similarity index 86% rename from dotfiles/dot_shell/sourced/080-linux.sh.tmpl rename to dotfiles/dot_config/dotfile_source/080-linux.sh.tmpl index 86706a1..67ddd93 100644 --- a/dotfiles/dot_shell/sourced/080-linux.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/080-linux.sh.tmpl @@ -2,8 +2,8 @@ # Run startup scripts -if [[ -f "${HOME}/.shell/scripts/debian-startup.sh" ]]; then - "${HOME}"/.shell/scripts/debian-startup.sh +if [[ -f "${HOME}/bin/linux-startup.sh" ]]; then + "${HOME}"/bin/linux-startup.sh fi # Aliases and Functions diff --git a/dotfiles/dot_shell/sourced/080-macos.sh.tmpl b/dotfiles/dot_config/dotfile_source/080-macos.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/080-macos.sh.tmpl rename to dotfiles/dot_config/dotfile_source/080-macos.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/080-synology.sh.tmpl b/dotfiles/dot_config/dotfile_source/080-synology.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/080-synology.sh.tmpl rename to dotfiles/dot_config/dotfile_source/080-synology.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/090-homelab.sh.tmpl b/dotfiles/dot_config/dotfile_source/090-homelab.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/090-homelab.sh.tmpl rename to dotfiles/dot_config/dotfile_source/090-homelab.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/090-personal.sh.tmpl b/dotfiles/dot_config/dotfile_source/090-personal.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/090-personal.sh.tmpl rename to dotfiles/dot_config/dotfile_source/090-personal.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/1password.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/1password.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/1password.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/1password.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/ansible.sh b/dotfiles/dot_config/dotfile_source/third-party/ansible.sh similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/ansible.sh rename to dotfiles/dot_config/dotfile_source/third-party/ansible.sh diff --git a/dotfiles/dot_shell/sourced/third-party/atuin.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/atuin.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/atuin.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/atuin.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/bat.sh b/dotfiles/dot_config/dotfile_source/third-party/bat.sh similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/bat.sh rename to dotfiles/dot_config/dotfile_source/third-party/bat.sh diff --git a/dotfiles/dot_shell/sourced/third-party/chezmoi.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/chezmoi.sh.tmpl similarity index 54% rename from dotfiles/dot_shell/sourced/third-party/chezmoi.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/chezmoi.sh.tmpl index 2b92d28..aa04251 100644 --- a/dotfiles/dot_shell/sourced/third-party/chezmoi.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/third-party/chezmoi.sh.tmpl @@ -3,8 +3,8 @@ alias chez='chezmoi' {{- if lookPath "code" }} -alias cdot='code ${HOME}/.local/share/chezmoi/.' +alias cdot='code {{ .xdgDataDir }}/chezmoi/.' {{- else }} -alias cdot='cd ${HOME}/.local/share/chezmoi' +alias cdot='cd {{ .xdgDataDir }}/chezmoi' {{- end }} {{- end }} diff --git a/dotfiles/dot_shell/sourced/third-party/crowdsec.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/crowdsec.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/crowdsec.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/crowdsec.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/docker.sh b/dotfiles/dot_config/dotfile_source/third-party/docker.sh similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/docker.sh rename to dotfiles/dot_config/dotfile_source/third-party/docker.sh diff --git a/dotfiles/dot_shell/sourced/third-party/ffmpeg.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/ffmpeg.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/ffmpeg.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/ffmpeg.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/fzf.sh b/dotfiles/dot_config/dotfile_source/third-party/fzf.sh similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/fzf.sh rename to dotfiles/dot_config/dotfile_source/third-party/fzf.sh diff --git a/dotfiles/dot_shell/sourced/third-party/git.sh b/dotfiles/dot_config/dotfile_source/third-party/git.sh similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/git.sh rename to dotfiles/dot_config/dotfile_source/third-party/git.sh diff --git a/dotfiles/dot_config/dotfile_source/third-party/github.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/github.sh.tmpl new file mode 100644 index 0000000..a0c14a5 --- /dev/null +++ b/dotfiles/dot_config/dotfile_source/third-party/github.sh.tmpl @@ -0,0 +1,6 @@ +if [[ $(command -v gh) ]]; then + if gh auth status &>/dev/null && gh extension list | grep -q "copilot"; then + [[ -n ${ZSH_NAME} ]] && eval "$(gh copilot alias -- zsh)" + [[ -n ${BASH} ]] && eval "$(gh copilot alias -- bash)" + fi +fi diff --git a/dotfiles/dot_shell/sourced/third-party/homebrew.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/homebrew.sh.tmpl similarity index 85% rename from dotfiles/dot_shell/sourced/third-party/homebrew.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/homebrew.sh.tmpl index df5ada0..16e5f36 100644 --- a/dotfiles/dot_shell/sourced/third-party/homebrew.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/third-party/homebrew.sh.tmpl @@ -1,7 +1,11 @@ -{{- if (and (eq .chezmoi.os "darwin") (lookPath "brew")) }} +{{- if and (eq .chezmoi.os "darwin") (lookPath "brew") }} -# Don't send analytics data -export HOMEBREW_NO_ANALYTICS=1 +# Set Exports +export HOMEBREW_CASK_OPTS="--appdir=/Applications" +export HOMEBREW_NO_INSTALL_CLEANUP=1 +{{ if .use_secrets -}} +export HOMEBREW_GITHUB_API_TOKEN={{- onepasswordRead .secrets.homebrew_github_token }} +{{ end }} # Set homebrew paths for GNU utilities _homebrewPaths=( @@ -24,9 +28,7 @@ done eval "$($(brew --prefix)/bin/brew shellenv)" -# if [[ -s /usr/local/etc/profile.d/autojump.sh ]]; then -# source "/usr/local/etc/profile.d/autojump.sh" -# fi + # shellcheck disable=SC1091 if [[ -n ${BASH} ]] && [ -f "/usr/local/etc/profile.d/bash_completion.sh" ]; then source "/usr/local/etc/profile.d/bash_completion.sh" @@ -38,10 +40,6 @@ if [ -f "$(brew --repository)/bin/src-hilite-lesspipe.sh" ]; then export LESS=' -R -z-4' fi -# /Applications is now the default but leaving this for posterity -export HOMEBREW_CASK_OPTS="--appdir=/Applications" -export HOMEBREW_NO_INSTALL_CLEANUP=FALSE - # Aliases alias brwe='brew' # Fix common typo diff --git a/dotfiles/dot_shell/sourced/third-party/imaginary.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/imaginary.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/imaginary.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/imaginary.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/jdfile.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/jdfile.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/jdfile.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/jdfile.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/ls_colors.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/ls_colors.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/ls_colors.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/ls_colors.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/nomad.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/nomad.sh.tmpl similarity index 94% rename from dotfiles/dot_shell/sourced/third-party/nomad.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/nomad.sh.tmpl index de3deee..01975c5 100644 --- a/dotfiles/dot_shell/sourced/third-party/nomad.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/third-party/nomad.sh.tmpl @@ -1,4 +1,4 @@ -{{- if (and (.homelab_member) (lookPath "nomad")) -}} +{{- if and (.homelab_member) (lookPath "nomad") -}} nomadExecutable="$(command -v nomad)" if [[ -n ${BASH} ]]; then diff --git a/dotfiles/dot_shell/sourced/third-party/npm.sh b/dotfiles/dot_config/dotfile_source/third-party/npm.sh similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/npm.sh rename to dotfiles/dot_config/dotfile_source/third-party/npm.sh diff --git a/dotfiles/dot_shell/sourced/third-party/poetry.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/poetry.sh.tmpl similarity index 68% rename from dotfiles/dot_shell/sourced/third-party/poetry.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/poetry.sh.tmpl index b0e0e1d..67ceace 100644 --- a/dotfiles/dot_shell/sourced/third-party/poetry.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/third-party/poetry.sh.tmpl @@ -2,11 +2,11 @@ # Completions for zsh if [[ -n ${ZSH_NAME} ]]; then - if [ ! -d "{{ .zsh_dir }}/completions" ]; then - mkdir -p "{{ .zsh_dir }}/completions" + if [ ! -d "{{ .xdgDataDir }}/zsh/completions" ]; then + mkdir -p "{{ .xdgDataDir }}/zsh/completions" fi - if [ ! -f "{{ .zsh_dir }}/completions/_poetry" ]; then - poetry completions zsh >"{{ .zsh_dir }}/completions/_poetry" + if [ $(command -v poetry) ] && [ ! -f "{{ .xdgDataDir }}/zsh/completions/_poetry" ]; then + poetry completions zsh >"{{ .xdgDataDir }}/zsh/completions/_poetry" fi fi diff --git a/dotfiles/dot_config/dotfile_source/third-party/pyenv.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/pyenv.sh.tmpl new file mode 100644 index 0000000..61832f6 --- /dev/null +++ b/dotfiles/dot_config/dotfile_source/third-party/pyenv.sh.tmpl @@ -0,0 +1,9 @@ +{{- if and ((joinPath .chezmoi.homeDir ".pyenv") | lstat) (lookPath "pyenv") -}} + +export PYENV_ROOT="${XDG_DATA_HOME}"/pyenv + +command -v pyenv >/dev/null || export PATH="${PYENV_ROOT}/bin:${PATH}" +eval "$(pyenv init --path)" +eval "$(pyenv init -)" + +{{- end }} diff --git a/dotfiles/dot_shell/sourced/third-party/rip2.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/rip2.sh.tmpl similarity index 58% rename from dotfiles/dot_shell/sourced/third-party/rip2.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/rip2.sh.tmpl index 9592193..78a9b2d 100644 --- a/dotfiles/dot_shell/sourced/third-party/rip2.sh.tmpl +++ b/dotfiles/dot_config/dotfile_source/third-party/rip2.sh.tmpl @@ -7,11 +7,11 @@ alias rmd='rip' # Completions for zsh if [[ -n ${ZSH_NAME} ]]; then - if [ ! -d "{{ .zsh_dir }}/completions" ]; then - mkdir -p "{{ .zsh_dir }}/completions" + if [ ! -d "{{ .xdgDataDir }}/zsh/completions" ]; then + mkdir -p "{{ .xdgDataDir }}/zsh/completions" fi - if [ ! -f "{{ .zsh_dir }}/completions/_rip" ]; then - rip completions zsh >"{{ .zsh_dir }}/completions/_rip" + if [ $(command -v rip) ] && [ ! -f "{{ .xdgDataDir }}/zsh/completions/_rip" ]; then + rip completions zsh >"{{ .xdgDataDir }}/zsh/completions/_rip" fi fi diff --git a/dotfiles/dot_shell/sourced/third-party/tailscale.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/tailscale.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/tailscale.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/tailscale.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/thefuck.sh b/dotfiles/dot_config/dotfile_source/third-party/thefuck.sh similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/thefuck.sh rename to dotfiles/dot_config/dotfile_source/third-party/thefuck.sh diff --git a/dotfiles/dot_shell/sourced/third-party/vscode.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/vscode.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/vscode.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/vscode.sh.tmpl diff --git a/dotfiles/dot_shell/sourced/third-party/zoxide.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/zoxide.sh.tmpl similarity index 100% rename from dotfiles/dot_shell/sourced/third-party/zoxide.sh.tmpl rename to dotfiles/dot_config/dotfile_source/third-party/zoxide.sh.tmpl diff --git a/dotfiles/dot_gitconfig.tmpl b/dotfiles/dot_config/git/config.tmpl similarity index 100% rename from dotfiles/dot_gitconfig.tmpl rename to dotfiles/dot_config/git/config.tmpl diff --git a/dotfiles/dot_config/nano/nanorc.tmpl b/dotfiles/dot_config/nano/nanorc.tmpl new file mode 100644 index 0000000..7bf5248 --- /dev/null +++ b/dotfiles/dot_config/nano/nanorc.tmpl @@ -0,0 +1,11 @@ +# enables the minibar feature +set minibar + +# disables the shortcut hints +set nohelp + +# disable inverse text for the minibar +set titlecolor normal,normal + +# Include syntax highlighters (add more from {{ .xdgDataDir }}/nano) +include {{ .xdgDataDir }}/nano/*.nanorc diff --git a/dotfiles/dot_config/npm/npmrc b/dotfiles/dot_config/npm/npmrc new file mode 100644 index 0000000..cbc2958 --- /dev/null +++ b/dotfiles/dot_config/npm/npmrc @@ -0,0 +1,4 @@ +prefix=${XDG_DATA_HOME}/npm +cache=${XDG_CACHE_HOME}/npm +init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js +tmp=${XDG_RUNTIME_DIR}/npm diff --git a/dotfiles/dot_config/python/executable_pythonrc b/dotfiles/dot_config/python/executable_pythonrc new file mode 100644 index 0000000..1344c1a --- /dev/null +++ b/dotfiles/dot_config/python/executable_pythonrc @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +# This entire thing is unnecessary post v3.13.0a3 +# https://github.com/python/cpython/issues/73965 + + +def is_vanilla() -> bool: + """:return: whether running "vanilla" Python <3.13""" + import sys + + return ( + not hasattr(__builtins__, "__IPYTHON__") + and "bpython" not in sys.argv[0] + and sys.version_info < (3, 13) + ) + + +def setup_history() -> None: + """Read and write history from state file.""" + import atexit + import os + import readline + from pathlib import Path + + history: Path + state_home: Path + + # Check PYTHON_HISTORY for future-compatibility with Python 3.13 + if history := os.environ.get("PYTHON_HISTORY"): + history = Path(history) + + # https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables + + elif state_home := os.environ.get("XDG_STATE_HOME"): + state_home = Path(state_home) + else: + state_home = Path.home() / ".local" / "state" + + final_history: Path = history or state_home / "python_history" + + # https://github.com/python/cpython/issues/105694 + if not final_history.is_file(): + readline.write_history_file(str(final_history)) # breaks on macos + python3 without this. + + readline.read_history_file(final_history) + atexit.register(readline.write_history_file, final_history) + + +if is_vanilla(): + setup_history() diff --git a/dotfiles/dot_digrc b/dotfiles/dot_digrc deleted file mode 100644 index 0eac377..0000000 --- a/dotfiles/dot_digrc +++ /dev/null @@ -1 +0,0 @@ -+noall +answer diff --git a/dotfiles/dot_gitignore b/dotfiles/dot_gitignore deleted file mode 100644 index e43b0f9..0000000 --- a/dotfiles/dot_gitignore +++ /dev/null @@ -1 +0,0 @@ -.DS_Store diff --git a/dotfiles/dot_sed/htmlDecode.sed b/dotfiles/dot_local/share/sed/htmlDecode.sed similarity index 100% rename from dotfiles/dot_sed/htmlDecode.sed rename to dotfiles/dot_local/share/sed/htmlDecode.sed diff --git a/dotfiles/dot_sed/htmlEncode.sed b/dotfiles/dot_local/share/sed/htmlEncode.sed similarity index 100% rename from dotfiles/dot_sed/htmlEncode.sed rename to dotfiles/dot_local/share/sed/htmlEncode.sed diff --git a/dotfiles/dot_sed/stopwords.sed b/dotfiles/dot_local/share/sed/stopwords.sed similarity index 100% rename from dotfiles/dot_sed/stopwords.sed rename to dotfiles/dot_local/share/sed/stopwords.sed diff --git a/dotfiles/dot_nanorc.tmpl b/dotfiles/dot_nanorc.tmpl deleted file mode 100644 index 38ab056..0000000 --- a/dotfiles/dot_nanorc.tmpl +++ /dev/null @@ -1,27 +0,0 @@ -# enables the minibar feature -set minibar - -# disables the shortcut hints -set nohelp - -# disable inverse text for the minibar -set titlecolor normal,normal - -# Include syntax highlighters (add more from ~/.nano/) -include ~/.nano/*.nanorc -# include "~/.nano/conf.nanorc" -# include "~/.nano/csv.nanorc" -# include "~/.nano/dotenv.nanorc" -# include "~/.nano/etc-hosts.nanorc" -# include "~/.nano/git.nanorc" -# include "~/.nano/html.nanorc" -# include "~/.nano/hcl.nanorc" -# include "~/.nano/ini.nanorc" -# include "~/.nano/json.nanorc" -# include "~/.nano/markdown.nanorc" -# include "~/.nano/nginx.nanorc" -# include "~/.nano/sed.nanorc" -# include "~/.nano/sh.nanorc" -# include "~/.nano/sql.nanorc" -# include "~/.nano/yaml.nanorc" -# include "~/.nano/zsh.nanorc" diff --git a/dotfiles/dot_shell/scripts/executable_chezmoi_binary_update.py b/dotfiles/dot_shell/scripts/executable_chezmoi_binary_update.py deleted file mode 100644 index fecbc6c..0000000 --- a/dotfiles/dot_shell/scripts/executable_chezmoi_binary_update.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env python3 - -# /// script -# dependencies = [ -# "rich", -# "httpx", -# "sh", -# "semver", -# "typer", -# ] -# /// - - -import logging -import re -from typing import Annotated - -import httpx -import sh -import typer -from rich.console import Console -from rich.logging import RichHandler -from semver import VersionInfo - -c = Console() - - -def main( - command: Annotated[str, typer.Option(help="Binary to check for updates")], - github: Annotated[ - str, typer.Option(help="GitHub repository in the format 'owner/repo'") - ], - update_url: Annotated[ - str, typer.Option(help="Install script binary to pipe to `sh`") - ] = None, - log_level: Annotated[str, typer.Option(help="Log level")] = "WARNING", -): - # Set up logging - FORMAT = "%(message)s" - logging.basicConfig( - level=log_level, format=FORMAT, datefmt="[%X]", handlers=[RichHandler()] - ) - logging.getLogger("sh").setLevel(level="WARNING") - logging.getLogger("httpx").setLevel(level="WARNING") - log = logging.getLogger("rich") - - c.print(f"Checking for updates to {command}") - - # Grab local version number - try: - cmd = sh.Command(command) - except sh.CommandNotFound: - log.error(f"command '{command}' not found") - raise typer.Exit(1) - - local_version_output = cmd("--version").strip() - local_version = re.sub( - rf"{command} ?v?", "", local_version_output, flags=re.IGNORECASE - ) - - # Grab remote version number - r = httpx.get(f"https://api.github.com/repos/{github}/releases/latest") - - if not r.status_code == 200: - log.error("Failed to fetch latest release") - raise typer.Exit(1) - - response = r.json() - - if response["draft"]: - log.warning("Draft release") - raise typer.Exit(1) - elif response["prerelease"]: - log.warning("Pre-release") - raise typer.Exit(1) - - remote_version = response["name"].replace("v", "").strip() - - log.info(f"{local_version=}") - log.info(f"{remote_version=}") - - # Compare versions - if VersionInfo.parse(local_version) < VersionInfo.parse(remote_version): - c.print(f"Update available for {command}") - if update_url: - c.print("Running update script") - curl = sh.Command("curl") - sh_bin = sh.Command("sh") - sh_response = sh_bin( - _in=curl("sSfL", update_url), - ) - c.print(sh_response) - else: - c.print(f"No update available for {command}") - - -if __name__ == "__main__": - typer.run(main) diff --git a/dotfiles/dot_shell/sourced/third-party/iterm.sh.tmpl b/dotfiles/dot_shell/sourced/third-party/iterm.sh.tmpl deleted file mode 100644 index f212187..0000000 --- a/dotfiles/dot_shell/sourced/third-party/iterm.sh.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -{{- if eq .chezmoi.os "darwin" -}} -{{- if "/Applications/iTerm.app" | lstat -}} - -if [[ -n ${BASH} ]]; then - if [[ ! -f ~/.iterm2_shell_integration.bash ]]; then - curl -L https://iterm2.com/shell_integration/bash \ - -o ~/.iterm2_shell_integration.bash &>/dev/null - fi - if [[ -f ~/.iterm2_shell_integration.bash ]]; then - source ~/.iterm2_shell_integration.bash - fi -elif [[ -n ${ZSH_NAME} ]]; then - if [[ ! -f "${HOME}/.iterm2_shell_integration.zsh" ]]; then - curl -L https://iterm2.com/shell_integration/zsh \ - -o "${HOME}/.iterm2_shell_integration.zsh" &>/dev/null - fi - # shellcheck disable=SC1091 - if [[ -f "${HOME}/.iterm2_shell_integration.zsh" ]]; then - source "${HOME}/.iterm2_shell_integration.zsh" - fi -fi - -{{- end }} -{{- end }} diff --git a/dotfiles/dot_shell/sourced/third-party/pyenv.sh.tmpl b/dotfiles/dot_shell/sourced/third-party/pyenv.sh.tmpl deleted file mode 100644 index 2d06fee..0000000 --- a/dotfiles/dot_shell/sourced/third-party/pyenv.sh.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- if (joinPath .chezmoi.homeDir ".pyenv") | lstat -}} - -## Depreciated in favor of uv - -# export PYENV_ROOT="${HOME}/.pyenv" - -# command -v pyenv >/dev/null || export PATH="${PYENV_ROOT}/bin:${PATH}" -# eval "$(pyenv init --path)" -# eval "$(pyenv init -)" - -{{- end }} diff --git a/dotfiles/dot_shellcheckrc b/dotfiles/dot_shellcheckrc.tmpl similarity index 91% rename from dotfiles/dot_shellcheckrc rename to dotfiles/dot_shellcheckrc.tmpl index 474549e..9ff59e9 100644 --- a/dotfiles/dot_shellcheckrc +++ b/dotfiles/dot_shellcheckrc.tmpl @@ -1,3 +1,4 @@ +{{- if .dev_computer -}} # Allow opening any 'source'd file, even if not specified as input external-sources=true @@ -8,3 +9,4 @@ disable=SC2236 # Allow [ ! -z foo ] instead of suggesting -n disable=SC2001 # Allow string="string" ; echo "$string" | sed -e "s/ir/ri/" disable=SC2317 # Allow Command appears to be unreachable disable=SC2034 # Allow unused variables +{{ end }} diff --git a/dotfiles/dot_yamllint.yml b/dotfiles/dot_yamllint.yml.tmpl similarity index 95% rename from dotfiles/dot_yamllint.yml rename to dotfiles/dot_yamllint.yml.tmpl index ccd4c85..157cdc1 100644 --- a/dotfiles/dot_yamllint.yml +++ b/dotfiles/dot_yamllint.yml.tmpl @@ -1,3 +1,4 @@ +{{- if .dev_computer -}} --- # Find full documentation at: https://yamllint.readthedocs.io/en/stable/index.html extends: default @@ -31,3 +32,4 @@ rules: truthy: level: error check-keys: false +{{ end }} diff --git a/dotfiles/dot_zshrc.tmpl b/dotfiles/dot_zshrc.tmpl index 2408aff..af7c088 100644 --- a/dotfiles/dot_zshrc.tmpl +++ b/dotfiles/dot_zshrc.tmpl @@ -34,30 +34,46 @@ elif [[ $0 == 'bash' ]]; then exit fi - unset _myPaths _path +# Create XDG directories +############################################# +if [ ! -d "{{ .xdgCacheDir }}/zsh" ]; then + mkdir -p "{{ .xdgCacheDir }}/zsh" +fi +if [ ! -d "{{ .xdgDataDir }}/zsh" ]; then + mkdir -p "{{ .xdgDataDir }}/zsh" +fi +if [ ! -d "{{ .xdgStateDir }}/zsh" ]; then + mkdir -p "{{ .xdgStateDir }}/zsh" +fi + # Source completions -if [ -d "{{ .zsh_dir }}/completions" ]; then - fpath=({{ .zsh_dir }}/completions $fpath) +if [ -d "{{ .xdgDataDir }}/zsh/completions" ]; then + fpath+={{ .xdgDataDir }}/zsh/completions fi -if [ -d "{{ .zsh_dir }}/zsh-completions/src" ]; then - fpath=({{ .zsh_dir }}/zsh-completions/src $fpath) +if [ -d "{{ .xdgDataDir }}/zsh/zsh-completions/src" ]; then + fpath+={{ .xdgDataDir }}/zsh/zsh-completions/src fi +{{ if eq .chezmoi.os "darwin" -}} +if type brew &>/dev/null; then + fpath+="$(brew --prefix)/share/zsh/site-functions" +fi +{{- end }} # Load Completions ############################################# autoload -Uz compinit -compinit +compinit -d "{{ .xdgCacheDir }}/zsh/zcompdump-${ZSH_VERSION}" # SOURCE Dotfiles ############################################# # Locations containing files *.bash to be sourced to your environment configFileLocations=( - "${HOME}/.shell/sourced" + "{{ .xdgConfigDir }}/dotfile_source" ) for configFileLocation in "${configFileLocations[@]}"; do @@ -74,9 +90,9 @@ done unset configFileLocations configFileLocation - +# Allow for local configuration not managed by chezmoi if [ -f "${HOME}/.dotfiles.local" ]; then source "${HOME}/.dotfiles.local" fi -alias sourcea='source ${HOME}/.zshrc' # Source this file to apply changes +alias sourcea='source ${HOME}/.zshrc' # Source this file to apply changes in the current shell diff --git a/uv.lock b/uv.lock index c7dbe78..27630b1 100644 --- a/uv.lock +++ b/uv.lock @@ -69,7 +69,7 @@ wheels = [ [[package]] name = "commitizen" -version = "3.29.0" +version = "3.29.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "argcomplete" }, @@ -83,9 +83,9 @@ dependencies = [ { name = "termcolor" }, { name = "tomlkit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7b/7b/9bd4792a523b4a5b7262d64a2ae9f63bea27469eeecaa0dabf737f40c143/commitizen-3.29.0.tar.gz", hash = "sha256:586b30c1976850d244b836cd4730771097ba362c9c1684d1f8c379176c2ea532", size = 50124 } +sdist = { url = "https://files.pythonhosted.org/packages/1a/b9/4cedde0d2ce28a56dd8f83b138235e2234ded942a7f7c7fed85bf703bf59/commitizen-3.29.1.tar.gz", hash = "sha256:b9a56190f4f3b20c73600e5ba448c7b81e0e6f87be3092aec1db4de75bf0fa91", size = 50711 } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/49/24f735aa25f76d8aff88b3a990a60c5dd3abcb386599f116007c61adf977/commitizen-3.29.0-py3-none-any.whl", hash = "sha256:0c6c479dbee6d19292315c6fca3782cf5c1f7f1638bc4bb5ab4cfb67f4e11894", size = 70783 }, + { url = "https://files.pythonhosted.org/packages/1a/95/7b55adb50de70dac4ad1ebcf4149ad3384c027d4c17fb9804c28a470ee82/commitizen-3.29.1-py3-none-any.whl", hash = "sha256:83f6563fae6a6262238e4424c55db5743eaa9827d2044dc23719466e4e78a0ca", size = 71761 }, ] [[package]] @@ -265,15 +265,15 @@ wheels = [ [[package]] name = "poethepoet" -version = "0.28.0" +version = "0.29.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pastel" }, - { name = "tomli" }, + { name = "pyyaml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8e/bf/9515a49237a7da1d6dd94209cec6ce7ec5f80ab82b3a61c03309b3faac4c/poethepoet-0.28.0.tar.gz", hash = "sha256:5dc3ee036ab0c93e918b5caed628274618b07d788e5cff6c4ae480913cbe009c", size = 57735 } +sdist = { url = "https://files.pythonhosted.org/packages/dc/7a/7144e47128022146502e179e259b312335bc1465384025eee92d4c7e16b2/poethepoet-0.29.0.tar.gz", hash = "sha256:676842302f2304a86b31ac56398dd672fae8471128d2086896393384dbafc095", size = 58619 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/96/9ef3ead766db60d3f1a2c034c171322736aab6c198c2067181794e49e2d4/poethepoet-0.28.0-py3-none-any.whl", hash = "sha256:db6946ff39a1244235950cd720ee7182107f64126d3dcc64c9a996cc4d755404", size = 74275 }, + { url = "https://files.pythonhosted.org/packages/b5/7d/871be58cc970ab4c9a541d64b77b7454d150a409c3e48b53fc9eac7a8967/poethepoet-0.29.0-py3-none-any.whl", hash = "sha256:f8dfe55006dcfb5cf31bcb1904e1262e1c642a4502fee3688cbf1bddfe5c7601", size = 76069 }, ] [[package]] @@ -353,27 +353,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.6.6" +version = "0.6.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/70/47/8220a40d1e60042d3a3a1cdf81cbafe674475cf8d60db2e28d0e4e004069/ruff-0.6.6.tar.gz", hash = "sha256:0fc030b6fd14814d69ac0196396f6761921bd20831725c7361e1b8100b818034", size = 3070828 } +sdist = { url = "https://files.pythonhosted.org/packages/74/f9/4ce3e765a72ab8fe0f80f48508ea38b4196daab3da14d803c21349b2d367/ruff-0.6.8.tar.gz", hash = "sha256:a5bf44b1aa0adaf6d9d20f86162b34f7c593bfedabc51239953e446aefc8ce18", size = 3084543 } wheels = [ - { url = "https://files.pythonhosted.org/packages/25/34/a34080926faed8ee41a4faf34e5993e367cd414cec543301113b0930f640/ruff-0.6.6-py3-none-linux_armv6l.whl", hash = "sha256:f5bc5398457484fc0374425b43b030e4668ed4d2da8ee7fdda0e926c9f11ccfb", size = 11353484 }, - { url = "https://files.pythonhosted.org/packages/22/ad/9c0b2fae42bfb54b91161b29b6b73bf73bfe7ddc03d5d3d0b4884a49df95/ruff-0.6.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:515a698254c9c47bb84335281a170213b3ee5eb47feebe903e1be10087a167ce", size = 11011998 }, - { url = "https://files.pythonhosted.org/packages/93/69/e406b534cbe2f4b992de0f4a8f9a790e4b93a3f5ca56f151e2665db95625/ruff-0.6.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6bb1b4995775f1837ab70f26698dd73852bbb82e8f70b175d2713c0354fe9182", size = 10524580 }, - { url = "https://files.pythonhosted.org/packages/26/5b/2e6fd424d78bd942dbf51f4a29512d5e698bfd9cad1245ad50ea679d5aa8/ruff-0.6.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69c546f412dfae8bb9cc4f27f0e45cdd554e42fecbb34f03312b93368e1cd0a6", size = 11652644 }, - { url = "https://files.pythonhosted.org/packages/05/73/e6eab18071ac908135bcc9873c0bde240cffd8d5cfcfef8efa00eae186e4/ruff-0.6.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:59627e97364329e4eae7d86fa7980c10e2b129e2293d25c478ebcb861b3e3fd6", size = 11096545 }, - { url = "https://files.pythonhosted.org/packages/63/64/e8da4e45174067e584f4d1105a160e018d8148158da7275a52f6090bd4bc/ruff-0.6.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94c3f78c3d32190aafbb6bc5410c96cfed0a88aadb49c3f852bbc2aa9783a7d8", size = 12005773 }, - { url = "https://files.pythonhosted.org/packages/2b/71/57fb76dc5a93cfa2c7d2a848d0c103e493c6553db3cbf30d642da522ee38/ruff-0.6.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:704da526c1e137f38c8a067a4a975fe6834b9f8ba7dbc5fd7503d58148851b8f", size = 12758296 }, - { url = "https://files.pythonhosted.org/packages/5a/85/583c969d1b6725aefeef2eb45e88e8ea55c30e017be8e158c322ee8bea56/ruff-0.6.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:efeede5815a24104579a0f6320660536c5ffc1c91ae94f8c65659af915fb9de9", size = 12295191 }, - { url = "https://files.pythonhosted.org/packages/a6/eb/7496d2de40818ea32c0ffb75aff405b9de7dda079bcdd45952eb17216e37/ruff-0.6.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e368aef0cc02ca3593eae2fb8186b81c9c2b3f39acaaa1108eb6b4d04617e61f", size = 13402527 }, - { url = "https://files.pythonhosted.org/packages/71/27/873696e146821535c84ad2a8dc488fe78298cd0fd1a0d24a946991363b50/ruff-0.6.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2653fc3b2a9315bd809725c88dd2446550099728d077a04191febb5ea79a4f79", size = 11872520 }, - { url = "https://files.pythonhosted.org/packages/fd/88/6da14ef37b88c42191246a217c58e1d5f0a83db9748e018e94ad05936466/ruff-0.6.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:bb858cd9ce2d062503337c5b9784d7b583bcf9d1a43c4df6ccb5eab774fbafcb", size = 11683880 }, - { url = "https://files.pythonhosted.org/packages/37/a3/8b9650748f72552e83f11f1d16786a24346128f4460d5b6945ed1f651901/ruff-0.6.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:488f8e15c01ea9afb8c0ba35d55bd951f484d0c1b7c5fd746ce3c47ccdedce68", size = 11186349 }, - { url = "https://files.pythonhosted.org/packages/ba/92/49523f745cf2330de1347110048cfd453de9486bef5498360595b6627074/ruff-0.6.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:aefb0bd15f1cfa4c9c227b6120573bb3d6c4ee3b29fb54a5ad58f03859bc43c6", size = 11555881 }, - { url = "https://files.pythonhosted.org/packages/99/cc/cd9ca48cb0b9b1b52710dd2f1e30c347f6cee5c455b53368665d274bfcd4/ruff-0.6.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a4c0698cc780bcb2c61496cbd56b6a3ac0ad858c966652f7dbf4ceb029252fbe", size = 11956426 }, - { url = "https://files.pythonhosted.org/packages/9d/a2/35c45a784d86daf6dab1510cbb5e572bee33b5c035e6f8e78f510c393acf/ruff-0.6.6-py3-none-win32.whl", hash = "sha256:aadf81ddc8ab5b62da7aae78a91ec933cbae9f8f1663ec0325dae2c364e4ad84", size = 9263539 }, - { url = "https://files.pythonhosted.org/packages/4a/87/c2a6fa6d1ec73a0f8b0713d69a29f8cdc17b251cd0e0ca3a96a78246ddce/ruff-0.6.6-py3-none-win_amd64.whl", hash = "sha256:0adb801771bc1f1b8cf4e0a6fdc30776e7c1894810ff3b344e50da82ef50eeb1", size = 10114810 }, - { url = "https://files.pythonhosted.org/packages/aa/b3/bfe8725d1c38addc86a2b5674ba4e3fd8ab3edb320dcd3f815b227b78b84/ruff-0.6.6-py3-none-win_arm64.whl", hash = "sha256:4b4d32c137bc781c298964dd4e52f07d6f7d57c03eae97a72d97856844aa510a", size = 9485847 }, + { url = "https://files.pythonhosted.org/packages/db/07/42ee57e8b76ca585297a663a552b4f6d6a99372ca47fdc2276ef72cc0f2f/ruff-0.6.8-py3-none-linux_armv6l.whl", hash = "sha256:77944bca110ff0a43b768f05a529fecd0706aac7bcce36d7f1eeb4cbfca5f0f2", size = 10404327 }, + { url = "https://files.pythonhosted.org/packages/eb/51/d42571ff8156d65086acb72d39aa64cb24181db53b497d0ed6293f43f07a/ruff-0.6.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:27b87e1801e786cd6ede4ada3faa5e254ce774de835e6723fd94551464c56b8c", size = 10018797 }, + { url = "https://files.pythonhosted.org/packages/c1/d7/fa5514a60b03976af972b67fe345deb0335dc96b9f9a9fa4df9890472427/ruff-0.6.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd48f945da2a6334f1793d7f701725a76ba93bf3d73c36f6b21fb04d5338dcf5", size = 9691303 }, + { url = "https://files.pythonhosted.org/packages/d6/c4/d812a74976927e51d0782a47539069657ac78535779bfa4d061c4fc8d89d/ruff-0.6.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:677e03c00f37c66cea033274295a983c7c546edea5043d0c798833adf4cf4c6f", size = 10719452 }, + { url = "https://files.pythonhosted.org/packages/ec/b6/aa700c4ae6db9b3ee660e23f3c7db596e2b16a3034b797704fba33ddbc96/ruff-0.6.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9f1476236b3eacfacfc0f66aa9e6cd39f2a624cb73ea99189556015f27c0bdeb", size = 10161353 }, + { url = "https://files.pythonhosted.org/packages/ea/39/0b10075ffcd52ff3a581b9b69eac53579deb230aad300ce8f9d0b58e77bc/ruff-0.6.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f5a2f17c7d32991169195d52a04c95b256378bbf0de8cb98478351eb70d526f", size = 10980630 }, + { url = "https://files.pythonhosted.org/packages/c1/af/9eb9efc98334f62652e2f9318f137b2667187851911fac3b395365a83708/ruff-0.6.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5fd0d4b7b1457c49e435ee1e437900ced9b35cb8dc5178921dfb7d98d65a08d0", size = 11768996 }, + { url = "https://files.pythonhosted.org/packages/e0/59/8b1369cf7878358952b1c0a1559b4d6b5c824c003d09b0db26d26c9d094f/ruff-0.6.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8034b19b993e9601f2ddf2c517451e17a6ab5cdb1c13fdff50c1442a7171d87", size = 11317469 }, + { url = "https://files.pythonhosted.org/packages/b9/6d/e252e9b11bbca4114c386ee41ad559d0dac13246201d77ea1223c6fea17f/ruff-0.6.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cfb227b932ba8ef6e56c9f875d987973cd5e35bc5d05f5abf045af78ad8e098", size = 12467185 }, + { url = "https://files.pythonhosted.org/packages/48/44/7caa223af7d4ea0f0b2bd34acca65a7694a58317714675a2478815ab3f45/ruff-0.6.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef0411eccfc3909269fed47c61ffebdcb84a04504bafa6b6df9b85c27e813b0", size = 10887766 }, + { url = "https://files.pythonhosted.org/packages/81/ed/394aff3a785f171869158b9d5be61eec9ffb823c3ad5d2bdf2e5f13cb029/ruff-0.6.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:007dee844738c3d2e6c24ab5bc7d43c99ba3e1943bd2d95d598582e9c1b27750", size = 10711609 }, + { url = "https://files.pythonhosted.org/packages/47/31/f31d04c842e54699eab7e3b864538fea26e6c94b71806cd10aa49f13e1c1/ruff-0.6.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ce60058d3cdd8490e5e5471ef086b3f1e90ab872b548814e35930e21d848c9ce", size = 10237621 }, + { url = "https://files.pythonhosted.org/packages/20/95/a764e84acf11d425f2f23b8b78b4fd715e9c20be4aac157c6414ca859a67/ruff-0.6.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1085c455d1b3fdb8021ad534379c60353b81ba079712bce7a900e834859182fa", size = 10558329 }, + { url = "https://files.pythonhosted.org/packages/2a/76/d4e38846ac9f6dd62dce858a54583911361b5339dcf8f84419241efac93a/ruff-0.6.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:70edf6a93b19481affd287d696d9e311388d808671bc209fb8907b46a8c3af44", size = 10954102 }, + { url = "https://files.pythonhosted.org/packages/e7/36/f18c678da6c69f8d022480f3e8ddce6e4a52e07602c1d212056fbd234f8f/ruff-0.6.8-py3-none-win32.whl", hash = "sha256:792213f7be25316f9b46b854df80a77e0da87ec66691e8f012f887b4a671ab5a", size = 8511090 }, + { url = "https://files.pythonhosted.org/packages/4c/c4/0ca7d8ffa358b109db7d7d045a1a076fd8e5d9cbeae022242d3c060931da/ruff-0.6.8-py3-none-win_amd64.whl", hash = "sha256:ec0517dc0f37cad14a5319ba7bba6e7e339d03fbf967a6d69b0907d61be7a263", size = 9350079 }, + { url = "https://files.pythonhosted.org/packages/d9/bd/a8b0c64945a92eaeeb8d0283f27a726a776a1c9d12734d990c5fc7a1278c/ruff-0.6.8-py3-none-win_arm64.whl", hash = "sha256:8d3bb2e3fbb9875172119021a13eed38849e762499e3cfde9588e4b4d70968dc", size = 8669595 }, ] [[package]] @@ -385,15 +385,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63", size = 7719 }, ] -[[package]] -name = "tomli" -version = "2.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f", size = 15164 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", size = 12757 }, -] - [[package]] name = "tomlkit" version = "0.13.2" @@ -414,33 +405,33 @@ wheels = [ [[package]] name = "typos" -version = "1.24.6" +version = "1.25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/92/44/0d3f5a153919bc757573fe89200ae77609a440b1b774d04e5f816839ee58/typos-1.24.6.tar.gz", hash = "sha256:0feda2aab59fc1c32cd1f382ea8676b4ef0921086ab172a43e69e5bb19206993", size = 1107518 } +sdist = { url = "https://files.pythonhosted.org/packages/1f/b1/cfd4c5e3148d1605f8b96fa460c0f2ca8e863024dc08c404a83d5ae7847d/typos-1.25.0.tar.gz", hash = "sha256:feb1b50edcddeacbb2244f971b5dd1cb6fba4eb9734a44f5dacb1676ab49aef1", size = 1112554 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/6b/75bf4f3de20c5edc17919b55b592dffade154ccee7c65512b2f506514082/typos-1.24.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:be576cd0afcbf72bd0fa4129d457b146627c837db189eae7ee83b9fc311dacef", size = 3523299 }, - { url = "https://files.pythonhosted.org/packages/b8/d0/c4f711a402c938c87ea3ee2bc173bb6ecb1a9869b662245eb97c56571f18/typos-1.24.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:49fc10b7d28a6a016678c92a5b3d091ea46a2a7e09d5d1122045e8509378f785", size = 3447219 }, - { url = "https://files.pythonhosted.org/packages/b1/a9/d63c5be9eb7a0105ae6b1257c6bae98595d52198b8c53359f6b93618d9f8/typos-1.24.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfbd7c40af229d680c2b9bc90e846eea70626bde9608f77a57c4e72145a5aa5f", size = 4893439 }, - { url = "https://files.pythonhosted.org/packages/38/56/3aebbf2f950a15343396cbfc4773d4de5dc632867210051516cb4faef83f/typos-1.24.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8eb05826d6ff1f8747e1c7d9991a10e13b644b2eb7e2855cc79a37ebb1104f1", size = 3532218 }, - { url = "https://files.pythonhosted.org/packages/3b/6f/d8ecddc82501b01a0e956173060c3b216bc9a7ee4c66d5b5c07dd02305c6/typos-1.24.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2abbe9dc208f6da9fddbf9bb281a3944d66188df9b3d43ad6f2f99721713446", size = 4215931 }, - { url = "https://files.pythonhosted.org/packages/86/09/e0cf7945287e4d7a61403237a1df2def419734a6a8e41f06829187f96ee2/typos-1.24.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:7291555c82e81e305ab3e10cb04d0f7d49ccecc1ced322c60f4619f6a14c7225", size = 3892579 }, - { url = "https://files.pythonhosted.org/packages/1f/02/336eb3315e1d53a780d98511b465cd801be9151294bcbb50a603d503b5de/typos-1.24.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7e27c307c26549a7986f2701f161358df29543e818bf9d6d81f0a81ca5ddeff5", size = 4224637 }, - { url = "https://files.pythonhosted.org/packages/71/b3/fafc840ea619798a7f98765c76eeb13e9227175509172f7a730cbd633396/typos-1.24.6-py3-none-win32.whl", hash = "sha256:cd725db3823c319f7e97b4e8e9fa4af143568b1c7d834f66c584bf86b9691f94", size = 2431615 }, - { url = "https://files.pythonhosted.org/packages/93/ec/2842da6226fe6c3c5a030364f65d99901c06507f6575c5f8250bc3602d9f/typos-1.24.6-py3-none-win_amd64.whl", hash = "sha256:12972e7a8be14fe5e7f0392de0b228a0098748959d1fecc35c4e8eab3efc04c0", size = 2568857 }, + { url = "https://files.pythonhosted.org/packages/2c/75/965b27d93f568625aa6cab1200fd0960f84edc1e16f07e09b15390601f1b/typos-1.25.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:564d3efa4764963a30e28b9716d49dfdd0679c2b75356fc10d89888e6ef489bb", size = 2984804 }, + { url = "https://files.pythonhosted.org/packages/9f/80/b15ae895843c36f212341236de1559374fd83bbd705340fd7a28b4f25c70/typos-1.25.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9a5d0d6770e4e0519c859e6025ac289eecd34a1b6dad7ec8706c537e71e47148", size = 2891222 }, + { url = "https://files.pythonhosted.org/packages/85/29/044d0c3c31a4763ad1c18e642c151f4955548849eef7e6b681fffae3e7f3/typos-1.25.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f067f00997fba7d2abca030c716c0e1fe2ed7f291d8ed2e46e93f8c940638f99", size = 4882267 }, + { url = "https://files.pythonhosted.org/packages/8f/ee/9b9fba5c8f2ab218ed62500a95fb0df946f11de33cb38fe49b5cf38dec7b/typos-1.25.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:482f53383ab8d9d76e6dec648a2f909c0d71eee1910fcdd552da90452cd867d1", size = 3334849 }, + { url = "https://files.pythonhosted.org/packages/91/0d/67e3e4323144eca8abe65876ad34e412db22c294ef6cc8016109167d96fc/typos-1.25.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc080979397f4196485d6e53651ff5966def175fe0ea5034b2e5d3a1b8800947", size = 4052757 }, + { url = "https://files.pythonhosted.org/packages/95/d7/7e95d3b4666db9d6a28578cafcf0f5b61ea1162f30ed1cb3ab63827afbc3/typos-1.25.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ddb0dd971f83a98a989741e5beb3b839d2794c7abe7cf669b4a62771288871df", size = 3883042 }, + { url = "https://files.pythonhosted.org/packages/1b/eb/5d7278568e3609a09a25f599174ead8a95d369309af556689d28d466839a/typos-1.25.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:17d69b48a3aba8378ba35ed9d7d0e7190972b231e69d025acd96275a1d7b5daa", size = 4066442 }, + { url = "https://files.pythonhosted.org/packages/28/79/b5984fa96702886ed434e55274d899bb947caad1459a58d5eddf46433619/typos-1.25.0-py3-none-win32.whl", hash = "sha256:d0df91543ff5aef010a8c9aa24a0252b0173b6930979dcb7e7c65fa33ab3381b", size = 2410316 }, + { url = "https://files.pythonhosted.org/packages/f8/d1/61c729e064a3a48565d88f0b79f4c592100da1609f002638352878913fae/typos-1.25.0-py3-none-win_amd64.whl", hash = "sha256:b561ba341515f33f9d5d9798d0e4195bf10737ec605a4d0d6b0f26980123d2c7", size = 2540105 }, ] [[package]] name = "virtualenv" -version = "20.26.5" +version = "20.26.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "distlib" }, { name = "filelock" }, { name = "platformdirs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bf/4c/66ce54c8736ff164e85117ca36b02a1e14c042a6963f85eeda82664fda4e/virtualenv-20.26.5.tar.gz", hash = "sha256:ce489cac131aa58f4b25e321d6d186171f78e6cb13fafbf32a840cee67733ff4", size = 9371932 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/40/abc5a766da6b0b2457f819feab8e9203cbeae29327bd241359f866a3da9d/virtualenv-20.26.6.tar.gz", hash = "sha256:280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48", size = 9372482 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/1d/e1a44fdd6d30829ba21fc58b5d98a67e7aae8f4165f11d091e53aec12560/virtualenv-20.26.5-py3-none-any.whl", hash = "sha256:4f3ac17b81fba3ce3bd6f4ead2749a72da5929c01774948e243db9ba41df4ff6", size = 5999288 }, + { url = "https://files.pythonhosted.org/packages/59/90/57b8ac0c8a231545adc7698c64c5a36fa7cd8e376c691b9bde877269f2eb/virtualenv-20.26.6-py3-none-any.whl", hash = "sha256:7345cc5b25405607a624d8418154577459c3e0277f5466dd79c49d5e492995f2", size = 5999862 }, ] [[package]]