# https://www.chezmoi.io/reference/special-files-and-directories/chezmoiexternal-format/
#
# The externals are checked based on the refreshPeriod whenever an `apply` (or `update`) operations run  
#
# The simplest form to update all externals:
# ```sh
# chezmoi apply --include externals
# ```
#
# Variable              Type            Default Description
# type                  string          none    External type (file, archive, archive-file, or git-repo)
# url                   string          none    URL
# refreshPeriod         duration        0       Refresh period (Examples: one day (24h), one week (168h), or four weeks (672h))
# executable            bool            false   Add executable_ attribute to file
# path                  string          none    Path to file in archive

{{ $defaultRefresh := "168h" -}}
{{- $externals := dict -}}

{{ $myArch := "aarch64-apple-darwin" }}

{{- with $repo := "zellij-org/zellij" -}}
{{-   with $version := (gitHubLatestRelease $repo).GetTagName -}}
{{-     $_ := set $externals ".cache/chezmoi/tmp/zellij" (dict
          "type" "archive-file"
          "url" (printf "https://github.com/%s/releases/download/%s/zellij-%s.tar.gz" $repo $version $myArch)
          "path" "zellij"
          "executable" true
          "refreshPeriod" $defaultRefresh
) -}}
{{-   end -}}
{{- end }}

{{- with $repo := "dandavison/delta" -}}
{{-   with $version := (gitHubLatestRelease $repo).GetTagName -}}
{{-     $_ := set $externals ".local/bin/delta" (dict
          "type" "archive-file"
          "url" (printf "https://github.com/%s/releases/download/%s/delta-%s-%s.tar.gz" $repo $version $version $myArch)
          "path" (printf "delta-%s-%s/delta" $version $myArch)
          "refreshPeriod" $defaultRefresh
) -}}
{{-   end -}}
{{- end -}}

{{ $myArch = "darwin_arm64" }}

{{- with $repo := "hickford/git-credential-oauth" -}}
{{-   with $version := trimPrefix "v" (gitHubLatestRelease $repo).GetTagName -}}
{{-     $_ := set $externals ".local/bin/git-credential-oauth" (dict
          "type" "archive-file"
          "url" (printf "https://github.com/%s/releases/download/v%s/git-credential-oauth_%s_%s.tar.gz" $repo $version $version $myArch)
          "path" "git-credential-oauth"
          "executable" true
          "refreshPeriod" $defaultRefresh
) -}}
{{-   end -}}
{{- end -}}

{{- with $repo := "knqyf263/pet" -}}
{{-   with $version := trimPrefix "v" (gitHubLatestRelease $repo).GetTagName -}}
{{-     $_ := set $externals ".local/bin/pet" (dict
          "type" "archive-file"
          "url" (printf "https://github.com/%s/releases/download/v%s/pet_%s_%s.tar.gz" $repo $version $version $myArch)
          "path" "pet"
          "executable" true
          "refreshPeriod" $defaultRefresh
) -}}
{{-   end -}}
{{- end -}}

{{ $myArch = "mac" }}

{{- with $repo := "extrawurst/gitui" -}}
{{-   with $version := (gitHubLatestRelease $repo).GetTagName -}}
{{-     $_ := set $externals ".local/bin/gitui" (dict
          "type" "archive-file"
          "url" (printf "https://github.com/%s/releases/download/%s/gitui-%s.tar.gz" $repo $version $myArch)
          "path" "./gitui"
          "executable" true
          "refreshPeriod" $defaultRefresh
) -}}
{{-   end -}}
{{- end }}

{{ $myArch = "Darwin_arm64" }}

{{- with $repo := "theimpostor/osc" -}}
{{-   with $version := (gitHubLatestRelease $repo).GetTagName -}}
{{-     $_ := set $externals ".local/bin/osc" (dict
          "type" "archive-file"
          "url" (printf "https://github.com/%s/releases/download/%s/osc_%s.tar.gz" $repo $version $myArch)
          "path" "osc"
          "executable" true
          "refreshPeriod" $defaultRefresh
) -}}
{{-   end -}}
{{- end }}

{{ $myArch = "darwin-arm64" }}

{{- with $repo := "Lifailon/lazyjournal" -}}
{{-   with $version := (gitHubLatestRelease $repo).GetTagName -}}
{{-     $_ := set $externals ".local/bin/lazyjournal" (dict
          "type" "file"
          "url" (printf "https://github.com/%s/releases/download/%s/lazyjournal-%s-%s" $repo $version $version $myArch)
          "executable" true
          "refreshPeriod" $defaultRefresh
) -}}
{{-   end -}}
{{- end }}

{{- $externals | toYaml }}

".config/sz.env/lib/delta.themes.gitconfig":
  type: "file"
  url: "https://raw.githubusercontent.com/dandavison/delta/refs/heads/main/themes.gitconfig"
  refreshPeriod: "{{ $defaultRefresh }}"