Moved chezmoi data one level down under chezmoi.roots
This commit is contained in:
parent
c34f7ae631
commit
de47f0c388
240 changed files with 90 additions and 76 deletions
1
chezmoi.roots/_src.posix/.chezmoi.toml.tmpl
Symbolic link
1
chezmoi.roots/_src.posix/.chezmoi.toml.tmpl
Symbolic link
|
@ -0,0 +1 @@
|
|||
../_src.all/.chezmoi.toml.tmpl
|
351
chezmoi.roots/_src.posix/.chezmoiexternal.yaml.tmpl
Normal file
351
chezmoi.roots/_src.posix/.chezmoiexternal.yaml.tmpl
Normal file
|
@ -0,0 +1,351 @@
|
|||
# https://www.chezmoi.io/reference/special-files-and-directories/chezmoiexternal-format/
|
||||
# The file will be empty (except for this comment) unless CZ_EXTR env variable exists.
|
||||
#
|
||||
# The externals are checked based on the refreshPeriod whenever an `apply` (or `update`) operations run
|
||||
#
|
||||
# The syntax to update all externals (and nothing else):
|
||||
# ```sh
|
||||
# CZ_EXTR=1 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" -}}
|
||||
|
||||
{{- if (env "CZ_EXTR") -}}
|
||||
{{/* Initialize template variables */}}
|
||||
{{- $myArch := "" -}}
|
||||
{{- $archive_type := or (get (dict "linux" "tar.gz") .chezmoi.os) "zip" -}}
|
||||
{{- $archive_type_short := or (get (dict "tar.gz" "tgz") $archive_type) $archive_type -}}
|
||||
{{- $path_prefix := "" -}}
|
||||
{{- $externals := dict -}}
|
||||
|
||||
{{/*
|
||||
# valid arch strings:
|
||||
# aarch64-apple-darwin
|
||||
# x86_64-apple-darwin
|
||||
# aarch64-unknown-linux-musl
|
||||
# x86_64-unknown-linux-musl
|
||||
*/}}
|
||||
|
||||
{{ $myArch = (printf "%s-%s" .sz.os.arch_alt .sz.os.rust_rel_target )}}
|
||||
|
||||
{{- with $app_name := "zellij" -}}
|
||||
{{- with $repo := (printf "%s/%s" "zellij-org" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s.tar.gz" $repo $version $app_name $myArch)
|
||||
"path" $app_name
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "delta" -}}
|
||||
{{- with $repo := (printf "%s/%s" "dandavison" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s-%s.tar.gz" $repo $version $app_name $version $myArch)
|
||||
"path" (printf "%s-%s-%s/%s" $app_name $version $myArch $app_name)
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "atuin" -}}
|
||||
{{- with $repo := (printf "%s/%s" "atuinsh" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s.tar.gz" $repo $version $app_name $myArch)
|
||||
"path" (printf "%s-%s/%s" $app_name $myArch $app_name )
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "lsd" -}}
|
||||
{{- with $repo := (printf "%s/%s" "lsd-rs" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s-%s.tar.gz" $repo $version $app_name $version $myArch)
|
||||
"path" (printf "%s-%s-%s/%s" $app_name $version $myArch $app_name)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "tv" -}}
|
||||
{{- with $repo := (printf "%s/%s" "alexpasmantier" "television") -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s-%s.tar.gz" $repo $version $app_name $version $myArch)
|
||||
"path" (printf "%s-%s-%s/%s" $app_name $version $myArch $app_name)
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "cargo-binstall" -}}
|
||||
{{- with $repo := (printf "%s/%s" "cargo-bins" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s.full.%s" $repo $version $app_name $myArch $archive_type_short)
|
||||
"path" $app_name
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- if lookPath "jq" -}}
|
||||
{{- $path_prefix = or (get (dict "linux" "./") .chezmoi.os) "" -}}
|
||||
{{- with $app_name := "eza" -}}
|
||||
{{- with $bin_url := (output "sh" "-c" (
|
||||
list
|
||||
"cargo-binstall --log-level debug --dry-run --no-track --no-confirm --json-output"
|
||||
$app_name
|
||||
"| jq \".fields | select ( .message == \\\"Downloading package\\\" )\""
|
||||
| join " ") | fromJson
|
||||
).url
|
||||
-}}
|
||||
{{- with $repo := (printf "%s/%s" "eza-community" $app_name) -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" $bin_url
|
||||
"path" (printf "%s%s" $path_prefix $app_name)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "vivid" -}}
|
||||
{{- with $bin_url := (output "sh" "-c" (
|
||||
list
|
||||
"cargo-binstall --log-level debug --dry-run --no-track --no-confirm --json-output"
|
||||
$app_name
|
||||
"| jq \".fields | select ( .message == \\\"Downloading package\\\" )\""
|
||||
| join " ") | fromJson
|
||||
).url
|
||||
-}}
|
||||
{{- with $path := trimSuffix ".zip" (trimSuffix ".tgz" (trimSuffix ".tar" (trimSuffix ".gz" (base $bin_url)))) -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" $bin_url
|
||||
"path" (printf "%s/%s" $path $app_name)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
# valid arch strings:
|
||||
# darwin_amd64
|
||||
# darwin_arm64
|
||||
# linux_386
|
||||
# linux_amd64
|
||||
# linux_arm64
|
||||
# windows_386
|
||||
# windows_amd64
|
||||
# windows_arm64
|
||||
*/}}
|
||||
{{- $myArch = (printf "%s_%s" .chezmoi.os .chezmoi.arch) -}}
|
||||
|
||||
{{- with $app_name := "gojq" -}}
|
||||
{{- with $repo := (printf "%s/%s" "itchyny" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" "jq") (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s_%s_%s.%s" $repo $version $app_name $version $myArch $archive_type)
|
||||
"path" (printf "%s_%s_%s/%s" $app_name $version $myArch $app_name)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "git-credential-oauth" -}}
|
||||
{{- with $repo := (printf "%s/%s" "hickford" $app_name) -}}
|
||||
{{- with $version := trimPrefix "v" (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/v%s/%s_%s_%s.tar.gz" $repo $version $app_name $version $myArch)
|
||||
"path" $app_name
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- with $app_name := "ov" -}}
|
||||
{{- with $repo := (printf "%s/%s" "noborus" $app_name) -}}
|
||||
{{- with $version := trimPrefix "v" (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/v%s/%s_%s_%s.zip" $repo $version $app_name $version $myArch)
|
||||
"path" $app_name
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{/*
|
||||
# valid arch strings:
|
||||
# linux-aarch64
|
||||
# linux-arm
|
||||
# linux-armv7
|
||||
# linux-x86_64
|
||||
# mac-x86
|
||||
# mac
|
||||
# win
|
||||
*/}}
|
||||
|
||||
{{- $myArch = or (get (dict "linux" (printf "%s-%s" .chezmoi.os .sz.os.arch_alt)) .chezmoi.os) .sz.os.short }}
|
||||
|
||||
{{- with $app_name := "gitui" -}}
|
||||
{{- with $repo := (printf "%s/%s" "extrawurst" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s.tar.gz" $repo $version $app_name $myArch)
|
||||
"path" (printf "./%s" $app_name)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{/*
|
||||
# valid arch strings:
|
||||
# darwin-amd64
|
||||
# darwin-arm64
|
||||
# freebsd-amd64
|
||||
# freebsd-arm64
|
||||
# linux-amd64
|
||||
# linux-arm64
|
||||
# openbsd-amd64
|
||||
# openbsd-arm64
|
||||
# windows-amd64
|
||||
# windows-arm64
|
||||
*/}}
|
||||
{{- $myArch = (print .chezmoi.os "-" .chezmoi.arch) -}}
|
||||
|
||||
{{- with $app_name := "lazyjournal" -}}
|
||||
{{- with $repo := (printf "%s/%s" "Lifailon" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s-%s" $repo $version $app_name $version $myArch)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- if (not (eq .chezmoi.os "darwin")) -}}
|
||||
{{- with $app_name := "moar" -}}
|
||||
{{- with $repo := (printf "%s/%s" "walles" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s-%s" $repo $version $app_name $version $myArch)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{- $myArch = or (get (dict "darwin" "macos-universal") .chezmoi.os) $myArch }}
|
||||
|
||||
{{- with $app_name := "fastfetch" -}}
|
||||
{{- with $repo := (printf "%s/%s" "fastfetch-cli" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s-%s.tar.gz" $repo $version $app_name $myArch)
|
||||
"executable" true
|
||||
"path" (printf "%s-%s/usr/bin/%s" $app_name $myArch $app_name)
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{/*
|
||||
# valid arch strings:
|
||||
# Darwin_arm64
|
||||
# Darwin_x86_64
|
||||
# Linux_arm64
|
||||
# Linux_i386
|
||||
# Linux_x86_64
|
||||
# Windows_arm64
|
||||
# Windows_i386
|
||||
# Windows_x86_64
|
||||
*/}}
|
||||
|
||||
{{- $myArch = .chezmoi.arch -}}
|
||||
{{- if (eq .chezmoi.os "linux") -}}
|
||||
{{- $myArch = .sz.os.arch_alt -}}
|
||||
{{- end -}}
|
||||
{{- $myArch = (printf "%s_%s" ( .chezmoi.os | title ) $myArch) -}}
|
||||
|
||||
{{- with $app_name := "osc" -}}
|
||||
{{- with $repo := (printf "%s/%s" "theimpostor" $app_name) -}}
|
||||
{{- with $version := (gitHubLatestRelease $repo).GetTagName -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://github.com/%s/releases/download/%s/%s_%s.tar.gz" $repo $version $app_name $myArch)
|
||||
"path" $app_name
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}
|
||||
{{- end -}}{{- end -}}{{- end -}}
|
||||
|
||||
{{/*
|
||||
# valid arch strings:
|
||||
# darwin-amd64
|
||||
# darwin-arm64
|
||||
# linux-386
|
||||
# linux-amd64
|
||||
# linux-arm64
|
||||
*/}}
|
||||
{{- $myArch = (printf "%s-%s" .chezmoi.os .chezmoi.arch) -}}
|
||||
|
||||
{{- if and (env "TELEPORT_MAJOR") (not (eq .chezmoi.os "windows")) -}}
|
||||
{{- with $app_name := "tsh" -}}
|
||||
{{- with $repo := (printf "%s/%s" "gravitational" "teleport") -}}
|
||||
{{- with $version := (gitHubReleases $repo | toJson | fromJson | jq (
|
||||
printf
|
||||
"map(select(.tag_name | startswith(\"v%s\")))[0] | .tag_name"
|
||||
(env "TELEPORT_MAJOR"))
|
||||
| first
|
||||
) -}}
|
||||
{{- $_ := set $externals (printf ".local/bin/%s" $app_name) (dict
|
||||
"type" "archive-file"
|
||||
"url" (printf "https://cdn.teleport.dev/teleport-%s-%s-bin.tar.gz" $version $myArch)
|
||||
"path" (printf "teleport/%s" $app_name)
|
||||
"executable" true
|
||||
"refreshPeriod" $defaultRefresh
|
||||
) -}}{{- end -}}{{- end -}}{{- end }}{{- end -}}
|
||||
|
||||
{{- $externals | toYaml -}}
|
||||
{{- else -}}
|
||||
# This is a truncated version of .chezmoiexternal because CZ_EXTR env is undefined
|
||||
|
||||
{{- end }}
|
||||
|
||||
".config/sz.env/lib/ble.sh.curl":
|
||||
type: "archive"
|
||||
url: "https://github.com/akinomyoga/ble.sh/releases/download/nightly/ble-nightly.tar.xz"
|
||||
refreshPeriod: "{{ $defaultRefresh }}"
|
||||
|
||||
".config/sz.env/lib/delta.themes.gitconfig":
|
||||
type: "file"
|
||||
url: "https://raw.githubusercontent.com/dandavison/delta/refs/heads/main/themes.gitconfig"
|
||||
refreshPeriod: "{{ $defaultRefresh }}"
|
||||
|
||||
".config/sz.env/lib/bash-preexec/bash-preexec.sh":
|
||||
type: "file"
|
||||
url: "https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh"
|
||||
refreshPeriod: "{{ $defaultRefresh }}"
|
||||
|
||||
".config/sz.env/lib/complete-alias":
|
||||
type: "file"
|
||||
url: "https://github.com/cykerway/complete-alias/raw/refs/heads/master/complete_alias"
|
||||
refreshPeriod: "{{ $defaultRefresh }}"
|
||||
|
||||
{{ if (and ( eq .chezmoi.os "linux" ) ( ne .chezmoi.osRelease.id "centos" )) -}}
|
||||
".local/bin/nvim.AppImage":
|
||||
type: "file"
|
||||
url: "https://github.com/neovim/neovim/releases/download/stable/nvim-linux-x86_64.appimage"
|
||||
executable: true
|
||||
refreshPeriod: "{{ $defaultRefresh }}"
|
||||
{{- end -}}
|
5
chezmoi.roots/_src.posix/.chezmoiignore
Normal file
5
chezmoi.roots/_src.posix/.chezmoiignore
Normal file
|
@ -0,0 +1,5 @@
|
|||
/**/.git
|
||||
/**/.git/**
|
||||
|
||||
.config/vim/autoload
|
||||
|
3
chezmoi.roots/_src.posix/.chezmoiscripts/run_once_init.sh.tmpl
Executable file
3
chezmoi.roots/_src.posix/.chezmoiscripts/run_once_init.sh.tmpl
Executable file
|
@ -0,0 +1,3 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
printf '_home init\s'
|
24
chezmoi.roots/_src.posix/dot_bashrc
Normal file
24
chezmoi.roots/_src.posix/dot_bashrc
Normal file
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
[ -z "${DBG_SHRC}" ] || echo "Entered .bashrc"
|
||||
|
||||
## Generated for envman. Do not edit.
|
||||
#[ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
|
||||
#
|
||||
## Generated by Webi. Do not edit.
|
||||
#eval "$(webi --init zsh)"
|
||||
|
||||
[ -s "$HOME/.config/sz.env/_.load.sh" ] && . <( "$HOME/.config/sz.env/_.load.sh" - )
|
||||
|
||||
[ -z "${DBG_SHRC}" ] || echo "Exiting .bashrc"
|
||||
# This will prevent atuin's setup script from adding itself: atuin init bash
|
||||
|
||||
#eval "${SZ_ENV_BASH_LOAD_PREEXEC}"
|
||||
#if [[ -n "${BLE_VERSION-}" ]]; then
|
||||
# [[ -n "${DBG}" ]] && echo "attaching ble.sh"
|
||||
# ble-attach
|
||||
#fi
|
||||
|
94
chezmoi.roots/_src.posix/dot_gitconfig.tmpl
Normal file
94
chezmoi.roots/_src.posix/dot_gitconfig.tmpl
Normal file
|
@ -0,0 +1,94 @@
|
|||
# This is Git's per-user configuration file.
|
||||
# It is recommended to edit this using chezmoi:
|
||||
# cz edit ~/.gitconfig
|
||||
|
||||
[include]
|
||||
path = .config/sz.env/lib/delta.themes.gitconfig
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[user]
|
||||
name = {{ .gitName }}
|
||||
email = {{ .gitEmail }}
|
||||
|
||||
# Information on how to set this up:
|
||||
# https://github.com/hickford/git-credential-oauth?tab=readme-ov-file#git-credential-oauth
|
||||
[credential]
|
||||
helper = cache --timeout 21600
|
||||
helper = oauth
|
||||
# helper = osxkeychain
|
||||
# helper = oauth -device
|
||||
|
||||
# Raed only OAuth2 authorization
|
||||
[credential "https://git.vastdata.com"]
|
||||
oauthClientId = 45fddd19ac1e3828f6caca2087dd78383477f0fc94164920476db536ac618beb
|
||||
oauthClientSecret = 98958d78931d8f02be1ab9c4fd4f718dcce357be3b609e771ba26f500ddd6196
|
||||
# oauthScopes = "read_repository write_repository"
|
||||
oauthScopes = "read_repository"
|
||||
oauthAuthURL = /oauth/authorize
|
||||
oauthTokenURL = /oauth/token
|
||||
oauthDeviceAuthURL = /oauth/authorize_device
|
||||
|
||||
[credential "https://code.lksz.me"]
|
||||
oauthClientId = a4792ccc-144e-407e-86c9-5e7d8d9c3269
|
||||
oauthAuthURL = /login/oauth/authorize
|
||||
oauthTokenURL = /login/oauth/access_token
|
||||
# oauthDeviceAuthURL = /login/oauth/authorize
|
||||
# oauthDeviceAuthURL = /login/oauth/authorize_device
|
||||
# oauthScopes = read_repository
|
||||
[core]
|
||||
editor = vim
|
||||
# delta will used as the default pager for git
|
||||
# and ov as the default pager for delta
|
||||
# the pager will be overloaded via the [pager] section for a few commands
|
||||
pager = delta --pager='ov -F'
|
||||
|
||||
[pager]
|
||||
# overload delta pager for some commands
|
||||
show = delta --pager='ov -F --header 3'
|
||||
|
||||
# We are now overloading some commands via "delta features"
|
||||
# This allows us to use different pager per git command
|
||||
# It allows to maintain a simpler config file and avoid escaping quotes
|
||||
diff = delta --features ov-diff
|
||||
log = delta --features ov-log
|
||||
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
|
||||
[delta]
|
||||
features = colibri
|
||||
navigate = true # use n and N to move between diff sections
|
||||
line-numbers = true
|
||||
side-by-side = true
|
||||
file-style = yellow
|
||||
|
||||
# we define the delta feature "ov-diff" we are using for git diff
|
||||
[delta "ov-diff"]
|
||||
# the idea is to overload the pager used by delta when using git diff
|
||||
# we are using the same pattern used by delta when the default pager (less) is used
|
||||
# using ov section feature brings a better experience
|
||||
pager=ov -F --section-delimiter '^(commit|added:|removed:|renamed:|Δ)' --section-header --pattern '•'
|
||||
|
||||
# we define the delta feature "ov-log" we are using for git log
|
||||
[delta "ov-log"]
|
||||
# the idea is to overload the pager used by delta when using git log
|
||||
# using ov section feature brings a better experience
|
||||
pager=ov -F --section-delimiter '^commit' --section-header-num 3
|
||||
|
||||
[diff]
|
||||
tool = nvimdiff
|
||||
[difftool]
|
||||
prompt = false
|
||||
[difftool "nvimdiff"]
|
||||
cmd = "nvim -d \"$LOCAL\" \"$REMOTE\""
|
||||
|
||||
[merge]
|
||||
tool = nvimdiff
|
||||
conflictstyle = zdiff3
|
||||
[mergetool]
|
||||
prompt = true
|
||||
[mergetool "nvimdiff"]
|
||||
cmd = "nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c 'wincmd w' -c 'wincmd J'"
|
||||
|
31
chezmoi.roots/_src.posix/dot_profile
Normal file
31
chezmoi.roots/_src.posix/dot_profile
Normal file
|
@ -0,0 +1,31 @@
|
|||
# ~/.profile: executed by the command interpreter for login shells.
|
||||
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
|
||||
# exists.
|
||||
# see /usr/share/doc/bash/examples/startup-files for examples.
|
||||
# the files are located in the bash-doc package.
|
||||
|
||||
# the default umask is set in /etc/profile; for setting the umask
|
||||
# for ssh logins, install and configure the libpam-umask package.
|
||||
#umask 022
|
||||
|
||||
# if running bash
|
||||
if [ -n "$BASH_VERSION" ]; then
|
||||
# include .bashrc if it exists
|
||||
if [ -f "$HOME/.bashrc" ]; then
|
||||
. "$HOME/.bashrc"
|
||||
fi
|
||||
fi
|
||||
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/.local/bin" ] ; then
|
||||
PATH="$HOME/.local/bin:$PATH"
|
||||
fi
|
||||
|
||||
# Generated for envman. Do not edit.
|
||||
# [ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
|
||||
[ -s "$HOME/.config/sz.env/_.load.sh" ] && . <( "$HOME/.config/sz.env/_.load.sh" - )
|
11
chezmoi.roots/_src.posix/dot_vimrc
Normal file
11
chezmoi.roots/_src.posix/dot_vimrc
Normal file
|
@ -0,0 +1,11 @@
|
|||
if has('nvim')
|
||||
" Neovim-specific settings
|
||||
set runtimepath+=~/.config/nvim
|
||||
lua require('_init')
|
||||
else
|
||||
" Vim-specific settings
|
||||
set runtimepath+=~/.config/vim
|
||||
source ~/.config/vim/_init
|
||||
endif
|
||||
|
||||
" vim: set ft=vim sw=4 sts=4 et:
|
8
chezmoi.roots/_src.posix/dot_zshrc
Normal file
8
chezmoi.roots/_src.posix/dot_zshrc
Normal file
|
@ -0,0 +1,8 @@
|
|||
## Generated for envman. Do not edit.
|
||||
#[ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
|
||||
#
|
||||
## Generated by Webi. Do not edit.
|
||||
#eval "$(webi --init zsh)"
|
||||
|
||||
[ -s "$HOME/.config/sz.env/_.load.sh" ] && . <( "$HOME/.config/sz.env/_.load.sh" - )
|
||||
|
142
chezmoi.roots/_src.posix/private_dot_config/atuin/config.toml
Normal file
142
chezmoi.roots/_src.posix/private_dot_config/atuin/config.toml
Normal file
|
@ -0,0 +1,142 @@
|
|||
## where to store your database, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/history.db
|
||||
## windows: %USERPROFILE%/.local/share/atuin/history.db
|
||||
# db_path = "~/.history.db"
|
||||
|
||||
## where to store your encryption key, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/key
|
||||
## windows: %USERPROFILE%/.local/share/atuin/key
|
||||
# key_path = "~/.key"
|
||||
|
||||
## where to store your auth session token, default is your system data directory
|
||||
## linux/mac: ~/.local/share/atuin/session
|
||||
## windows: %USERPROFILE%/.local/share/atuin/session
|
||||
# session_path = "~/.session"
|
||||
|
||||
## date format used, either "us" or "uk"
|
||||
# dialect = "us"
|
||||
|
||||
## enable or disable automatic sync
|
||||
# auto_sync = true
|
||||
|
||||
## enable or disable automatic update checks
|
||||
# update_check = true
|
||||
|
||||
## address of the sync server
|
||||
# sync_address = "http://192.168.222.65"
|
||||
|
||||
## how often to sync history. note that this is only triggered when a command
|
||||
## is ran, so sync intervals may well be longer
|
||||
## set it to 0 to sync after every command
|
||||
# sync_frequency = "10m"
|
||||
|
||||
## which search mode to use
|
||||
## possible values: prefix, fulltext, fuzzy, skim
|
||||
# search_mode = "fuzzy"
|
||||
|
||||
## which filter mode to use
|
||||
## possible values: global, host, session, directory
|
||||
# filter_mode = "global"
|
||||
|
||||
## With workspace filtering enabled, Atuin will filter for commands executed
|
||||
## in any directory within a git repository tree (default: false)
|
||||
# workspaces = false
|
||||
|
||||
## which filter mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "filter_mode"
|
||||
## leave unspecified to use same mode set in "filter_mode"
|
||||
# filter_mode_shell_up_key_binding = "directory"
|
||||
|
||||
## which search mode to use when atuin is invoked from a shell up-key binding
|
||||
## the accepted values are identical to those of "search_mode"
|
||||
## leave unspecified to use same mode set in "search_mode"
|
||||
# search_mode_shell_up_key_binding = "fuzzy"
|
||||
|
||||
## which style to use
|
||||
## possible values: auto, full, compact
|
||||
# style = "auto"
|
||||
|
||||
## the maximum number of lines the interface should take up
|
||||
## set it to 0 to always go full screen
|
||||
inline_height = 20
|
||||
|
||||
## Invert the UI - put the search bar at the top , Default to `false`
|
||||
# invert = false
|
||||
|
||||
## enable or disable showing a preview of the selected command
|
||||
## useful when the command is longer than the terminal width and is cut off
|
||||
show_preview = true
|
||||
|
||||
## what to do when the escape key is pressed when searching
|
||||
## possible values: return-original, return-query
|
||||
# exit_mode = "return-original"
|
||||
|
||||
## possible values: emacs, subl
|
||||
# word_jump_mode = "emacs"
|
||||
|
||||
## characters that count as a part of a word
|
||||
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
|
||||
## number of context lines to show when scrolling by pages
|
||||
# scroll_context_lines = 1
|
||||
|
||||
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
|
||||
## alt-0 .. alt-9
|
||||
# ctrl_n_shortcuts = false
|
||||
|
||||
## prevent commands matching any of these regexes from being written to history.
|
||||
## Note that these regular expressions are unanchored, i.e. if they don't start
|
||||
## with ^ or end with $, they'll match anywhere in the command.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# history_filter = [
|
||||
# "^secret-cmd",
|
||||
# "^innocuous-cmd .*--secret=.+"
|
||||
# ]
|
||||
|
||||
## prevent commands run with cwd matching any of these regexes from being written
|
||||
## to history. Note that these regular expressions are unanchored, i.e. if they don't
|
||||
## start with ^ or end with $, they'll match anywhere in CWD.
|
||||
## For details on the supported regular expression syntax, see
|
||||
## https://docs.rs/regex/latest/regex/#syntax
|
||||
# cwd_filter = [
|
||||
# "^/very/secret/area"
|
||||
# ]
|
||||
|
||||
## Configure the maximum height of the preview to show.
|
||||
## Useful when you have long scripts in your history that you want to distinguish
|
||||
## by more than the first few lines.
|
||||
max_preview_height = 8
|
||||
|
||||
## Configure whether or not to show the help row, which includes the current Atuin
|
||||
## version (and whether an update is available), a keymap hint, and the total
|
||||
## amount of commands in your history.
|
||||
show_help = true
|
||||
|
||||
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
|
||||
## 1. AWS key id
|
||||
## 2. Github pat (old and new)
|
||||
## 3. Slack oauth tokens (bot, user)
|
||||
## 4. Slack webhooks
|
||||
## 5. Stripe live/test keys
|
||||
# secrets_filter = true
|
||||
|
||||
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
|
||||
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||
enter_accept = false
|
||||
|
||||
#[stats]
|
||||
# Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||
common_subcommands = [
|
||||
"cargo",
|
||||
"go",
|
||||
"git",
|
||||
"npm",
|
||||
"yarn",
|
||||
"pnpm",
|
||||
"kubectl",
|
||||
"apt"
|
||||
]
|
||||
#
|
||||
# Set commands that should be totally stripped and ignored from stats
|
||||
#common_prefix = ["sudo"]
|
37
chezmoi.roots/_src.posix/private_dot_config/pet/config.toml
Normal file
37
chezmoi.roots/_src.posix/private_dot_config/pet/config.toml
Normal file
|
@ -0,0 +1,37 @@
|
|||
[General]
|
||||
Backend = "gist" # specify backend service to sync snippets (gist, ghe or gitlab, default: gist)
|
||||
cmd = ["sh", "-c"] # specify the command to execute the snippet with
|
||||
Color = false # enables output coloring with fzf, same as '--color' flag
|
||||
Column = 40 # column size for list command
|
||||
Editor = "vim" # your favorite text editor
|
||||
Format = "[$description]: $command $tags" # controls the format of the output when searching
|
||||
SelectCmd = "fzf --ansi --layout=reverse --border --height=90% --pointer=* --cycle --prompt=Snippets:" # selector command for edit command (fzf or peco)
|
||||
SnippetDirs = []
|
||||
SnippetFile = "/Users/gal.szkolnik/.config/pet/snippet.toml" # specify snippet path
|
||||
SortBy = "" # specify how snippets get sorted (recency (default), -recency, description, -description, command, -command, output, -output)
|
||||
|
||||
[Gist]
|
||||
file_name = "pet-snippet.toml"
|
||||
access_token = "" # your access token
|
||||
gist_id = "" # Gist ID
|
||||
Public = false # public or priate
|
||||
auto_sync = false # sync automatically when editing snippets
|
||||
|
||||
[GitLab]
|
||||
file_name = "pet-snippet.toml" # specify GitLab Snippets file name
|
||||
access_token = "XXXXXXXXXXXXX" # your access token
|
||||
ID = "" # GitLab Snippets ID
|
||||
Visibility = "private" # public or internal or private
|
||||
auto_sync = false # sync automatically when editing snippets
|
||||
|
||||
Url = ""
|
||||
skip_ssl = false
|
||||
|
||||
[GHEGist]
|
||||
Public = false
|
||||
access_token = ""
|
||||
auto_sync = false
|
||||
base_url = ""
|
||||
file_name = ""
|
||||
gist_id = ""
|
||||
upload_url = ""
|
18
chezmoi.roots/_src.posix/private_dot_config/pet/snippet.toml
Normal file
18
chezmoi.roots/_src.posix/private_dot_config/pet/snippet.toml
Normal file
|
@ -0,0 +1,18 @@
|
|||
|
||||
[[Snippets]]
|
||||
Description = "shell's nil"
|
||||
Output = ""
|
||||
Tag = []
|
||||
command = ": ;"
|
||||
|
||||
[[Snippets]]
|
||||
Description = "echo"
|
||||
Output = ""
|
||||
Tag = []
|
||||
command = "echo"
|
||||
|
||||
[[Snippets]]
|
||||
Description = "Initialize MacBook Pro connection into TechPort"
|
||||
Output = ""
|
||||
Tag = []
|
||||
command = "lsif\nlsip\npull-vast.id_rsa 0\nvastconnect 192.168.2.2\nauto-copy-ssh-id 192.168.2.2"
|
101
chezmoi.roots/_src.posix/private_dot_config/starship.toml
Normal file
101
chezmoi.roots/_src.posix/private_dot_config/starship.toml
Normal file
|
@ -0,0 +1,101 @@
|
|||
# Customized, based on tokyo-night
|
||||
|
||||
# global prompt configuration ( https://starship.rs/config/#prompt )
|
||||
format = """
|
||||
[░▒▓](#a3aed2)\
|
||||
$os\
|
||||
[](bg:#769ff0 fg:#a3aed2)\
|
||||
$directory\
|
||||
[](fg:#769ff0 bg:#394260)\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
[](fg:#394260 bg:#212736)\
|
||||
$nodejs\
|
||||
$rust\
|
||||
$golang\
|
||||
[](fg:#212736 bg:#1d2230)\
|
||||
$time\
|
||||
[](fg:#212736 bg:#1d2230)\
|
||||
$cmd_duration\
|
||||
$status\
|
||||
[ ](fg:#1d2230)\
|
||||
$line_break$character"""
|
||||
|
||||
command_timeout = 1500 # milliseconds; default is 500
|
||||
|
||||
[profiles]
|
||||
transient = """
|
||||
$time\
|
||||
[](fg:#212736 bg:#1d2230)\
|
||||
$character"""
|
||||
|
||||
|
||||
[os]
|
||||
style = "bg:#a3aed2 fg:#090c0c"
|
||||
disabled = false
|
||||
|
||||
# Without NerdFont
|
||||
#[os.symbols]
|
||||
#Windows = " Win"
|
||||
|
||||
# NerdFont - see https://www.nerdfonts.com/cheat-sheet
|
||||
[os.symbols]
|
||||
Windows = " "
|
||||
|
||||
[directory]
|
||||
style = "fg:#e3e5e5 bg:#769ff0"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = ""
|
||||
style = "bg:#394260"
|
||||
format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bg:#394260"
|
||||
format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
|
||||
|
||||
[nodejs]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[rust]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[golang]
|
||||
symbol = ""
|
||||
style = "bg:#212736"
|
||||
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R" # Hour:Minute Format
|
||||
style = "bg:#1d2230"
|
||||
format = '[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)'
|
||||
|
||||
[cmd_duration]
|
||||
min_time = 500 # milliseconds
|
||||
# nerd font version:
|
||||
format = 'prev: [[ $duration ](fg:#a0a9cb bg:#1d2230)]($style)'
|
||||
# General UNICODE font version:
|
||||
# format = '[[ ⧗ $duration ](fg:#a0a9cb bg:#1d2230)]($style)'
|
||||
# Emoji version:
|
||||
# format = '[[ ⌛ $duration ](fg:#a0a9cb bg:#1d2230)]($style)'
|
||||
|
||||
[status]
|
||||
disabled = false
|
||||
|
||||
[character]
|
||||
disabled = false
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if [[ ! "$-" =~ i ]]; then
|
||||
LOAD_EXIT=1
|
||||
echo "Non interactive session ($-) , stopping load of shell environment" 1>&2
|
||||
else
|
||||
${NO_RESET:+:} reset
|
||||
export NO_RESET=1
|
||||
fi
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
function is_truenas() {
|
||||
local TRUENAS_TARGET="truenas.target"
|
||||
[ "$(systemctl get-default)" = "$TRUENAS_TARGET" ] \
|
||||
&& [ "$(systemctl is-active "$TRUENAS_TARGET")" = "active" ]
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
PATH="$HOME/bin:$PATH"
|
||||
PATH="$HOME/.local/bin:$PATH"
|
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
export PATH="$HOME/.local/opt/node/bin:$PATH"
|
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd midclt && [ -z "$SCALE_POOL" ]; then
|
||||
export SCALE_POOL=szmedia
|
||||
|
||||
export SCALE_POOL="$(midclt call "kubernetes.config" 2>/dev/null | jq -r '.pool')"
|
||||
[ -n "$SCALE_POOL" ] && [ "$SCALE_POOL" != "null" ] || export SCALE_POOL="$(midclt call "pool.query" 2>/dev/null | jq -r '.[0].name')"
|
||||
[ -d "/mnt/$SCALE_POOL" ] || unset SCALE_POOL
|
||||
fi
|
||||
|
||||
[ -n "$SCALE_POOL" ] \
|
||||
&& export SCALE_POOL_ROOT=/mnt/$SCALE_POOL \
|
||||
&& PATH="$SCALE_POOL_ROOT/_apps.data/_scripts/truestuff:$PATH" \
|
||||
&& PATH="$SCALE_POOL_ROOT/data/scripts/truestuff:$PATH" \
|
||||
&& export PATH
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env -S sh -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
# Remove duplicates from PATH
|
||||
OLDPATH="$PATH"; NEWPATH=""; colon=""
|
||||
while [ "${OLDPATH#*:}" != "$OLDPATH" ]; do
|
||||
entry="${OLDPATH%%:*}"; search=":${OLDPATH#*:}:"
|
||||
[ "${search#*:"$entry":}" = "$search" ] && [[ -d $entry ]] && NEWPATH="$NEWPATH$colon$entry" && colon=:
|
||||
OLDPATH="${OLDPATH#*:}"
|
||||
done
|
||||
NEWPATH="$NEWPATH:$OLDPATH"
|
||||
export PATH="$NEWPATH"
|
||||
unset NEWPATH OLDPATH colon entry search
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "${PATH//:/\n}"
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env -S zsh -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
BASE_SHELL=${BASE_SHELL:-${SHELL##*/}}
|
||||
|
||||
SZ_NOMUX=${SZ_NOMUX:-0}
|
||||
|
||||
if [ "${SZ_NOMUX:-0}" -ne 1 ]; then
|
||||
[ "$TERM_PROGRAM" != 'vscode' ] \
|
||||
&& [ "$TERM_PROGRAM" != 'Tabby' ] \
|
||||
&& [ -z "${VSCODE_PROFILE_INITIALIZED}" ] \
|
||||
|| SZ_NOMUX=1
|
||||
fi
|
|
@ -0,0 +1,68 @@
|
|||
#!/usr/bin/env -S zsh -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
BASE_SHELL=${BASE_SHELL:-${SHELL##*/}}
|
||||
|
||||
if [[ "${BASE_SHELL}" == "zsh" ]]; then
|
||||
|
||||
[ -z "$ZSH_CACHE_DIR" ] && export ZSH_CACHE_DIR=$HOME/.cache/zsh
|
||||
mkdir -p $ZSH_CACHE_DIR/completions
|
||||
mkdir -p "$HOME/.local/share/zsh/completions"
|
||||
|
||||
# Remove duplicates from fpath, and add local completion dir
|
||||
fpath=( $(
|
||||
for d in $(
|
||||
awk '!seen[$0]++' <(
|
||||
echo "$HOME/.local/share/zsh/completions"
|
||||
printf '%s\n' $fpath
|
||||
)
|
||||
); do
|
||||
[ -d "$d" ] && echo "$d"
|
||||
done
|
||||
) )
|
||||
|
||||
skip_global_compinit=1
|
||||
|
||||
# # Jump to the bottom of the screen
|
||||
# SZ_TPUT_END=$(tput cup 9999 0)
|
||||
# echo $SZ_TPUT_END
|
||||
|
||||
PS1="$(zsh -c '. <([ -n "$(echo /etc/*-release(N))" ] && cat /etc/*-release(N) | uniq -u || NAME="$VENDOR" ); echo "$NAME $VERSION_ID "')| ZSH ${ZSH_VERSION} LOADING >"
|
||||
|
||||
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
#""" Shell Settings """
|
||||
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
typeset -g HISTFILE="$HOME/.zsh_history"
|
||||
typeset -g HISTSIZE=1000000
|
||||
typeset -g SAVEHIST=$HISTSIZE
|
||||
typeset -g COMPLETION_WAITING_DOTS="true"
|
||||
setopt hist_ignore_dups # ignore duplicated commands history list
|
||||
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES # fix "+[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called" issue
|
||||
|
||||
#####################
|
||||
# SETOPT #
|
||||
#####################
|
||||
setopt promptsubst
|
||||
setopt extended_history # record timestamp of command in HISTFILE
|
||||
setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
|
||||
setopt hist_ignore_all_dups # ignore duplicated commands history list
|
||||
setopt hist_ignore_space # ignore commands that start with space
|
||||
setopt hist_verify # show command with history expansion to user before running it
|
||||
setopt inc_append_history # add commands to HISTFILE in order of execution
|
||||
setopt share_history # share command history data
|
||||
setopt always_to_end # cursor moved to the end in full completion
|
||||
setopt hash_list_all # hash everything before completion
|
||||
setopt nocompletealiases # no complete alisases - no need for specific compdef for aliases
|
||||
setopt always_to_end # when completing from the middle of a word, move the cursor to the end of the word
|
||||
setopt complete_in_word # allow completion from within a word/phrase
|
||||
setopt nocorrect # spelling correction for commands
|
||||
setopt list_ambiguous # complete as much of a completion until it gets ambiguous.
|
||||
setopt auto_cd # changing directories without cd
|
||||
setopt nolisttypes
|
||||
setopt listpacked
|
||||
setopt automenu
|
||||
setopt interactivecomments # allow # comments in command-line
|
||||
setopt vi
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "ZSH preped"
|
||||
fi
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/env -S zsh -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
#""" z-shell/zi """
|
||||
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
#
|
||||
# ### Added by z-shell/zi's installer
|
||||
ZI_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zi/bin"
|
||||
mkdir -p "$(dirname "$ZI_HOME")"
|
||||
if [[ ! -d "$ZI_HOME/.git" ]]; then
|
||||
print -P "%F{33}▓▒░ %F{160}Installing (%F{33}z-shell/zi%F{160})…%f"
|
||||
command mkdir -p "$(dirname "$ZINIT_HOME")" \
|
||||
&& command chmod go-rwX "$(dirname "$ZI_HOME")"
|
||||
command git clone -q --depth=1 --branch "main" \
|
||||
https://github.com/z-shell/zi.git "$ZI_HOME" \
|
||||
&& print -P "%F{33}▓▒░ %F{34}Installation successful.%f%b" \
|
||||
|| print -P "%F{160}▓▒░ The clone has failed.%f%b"
|
||||
fi
|
||||
source "${ZI_HOME}/zi.zsh"
|
||||
autoload -Uz _zi
|
||||
(( ${+_comps} )) && _comps[zi]=_zi
|
||||
# examples here -> https://wiki.zshell.dev/ecosystem/category/-annexes
|
||||
zicompinit # <- https://wiki.zshell.dev/docs/guides/commands
|
||||
### End of z-shell/zi installer's chunk
|
||||
alias zinit=zi
|
||||
|
||||
zinit ice depth=1
|
||||
zinit light jeffreytse/zsh-vi-mode
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "zi ready"
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env -S zsh -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
BASE_SHELL=${BASE_SHELL:-${SHELL##*/}}
|
||||
|
||||
if [[ "${BASE_SHELL}" == "zsh" ]]; then
|
||||
autoload -Uz +X compinit bashcompinit && compinit && bashcompinit
|
||||
|
||||
zstyle ':completion:*' menu yes select
|
||||
fi
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd load-zellij; then
|
||||
[[ -z "$ZELLIJ_SESSION_NAME" && "${SZ_NOMUX:-0}" -eq '1' ]] \
|
||||
&& ZELLIJ_SESSION_NAME=__NO_LOAD__
|
||||
# zellij will need to allow reload of the enviornment
|
||||
[[ -z "$ZELLIJ_SESSION_NAME" ]] && unset SZ_ENV_LOADED
|
||||
. <( load-zellij - )
|
||||
[[ -z "$ZELLIJ_SESSION_NAME" ]] && SZ_ENV_LOADED=1
|
||||
|
||||
[[ "$ZELLIJ_SESSION_NAME" == '__NO_LOAD__' ]] && unset ZELLIJ_SESSION_NAME
|
||||
fi
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
alias _ls='command ls '
|
||||
{{- if eq .chezmoi.os "darwin" }}
|
||||
alias ls='_ls -hF --color=auto '
|
||||
alias l='ls -la '
|
||||
alias lold='l -t '
|
||||
alias lnew='l -tr '
|
||||
{{ else }}
|
||||
alias ls='_ls -hF --color=auto --group-directories-first '
|
||||
alias l='ls -la '
|
||||
alias lold='l --sort=time '
|
||||
alias lnew='l --sort=time --reverse '
|
||||
{{- end }}
|
||||
alias ll='l -A'
|
||||
alias lu='l -U '
|
||||
|
||||
alias sudo='sudo '
|
||||
|
||||
is_cmd ov \
|
||||
&& alias less="ov " \
|
||||
&& export PAGER=ov
|
||||
|
||||
is_cmd moar \
|
||||
&& alias less="moar " \
|
||||
&& export PAGER=moar
|
||||
|
||||
is_cmd nvim \
|
||||
&& export VISUAL="nvim" EDITOR="nvim" \
|
||||
|| export VISUAL="vim" EDITOR="vim"
|
||||
|
||||
alias nvim="POSTFIX_BUITINS=1 command $EDITOR -p "
|
||||
alias vi='nvim '
|
||||
alias vim='nvim '
|
||||
alias nvimdiff='nvim -d '
|
||||
alias vimdiff='nvimdiff '
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
update-bash-preexec() {
|
||||
local workdir="$SZ_ENV_ROOT/lib/bash-preexec"
|
||||
[ -d "$workdir" ] && rm -fR "$workdir"
|
||||
mkdir -p "$workdir"
|
||||
|
||||
cd "$workdir"
|
||||
|
||||
# Pull down our file from GitHub and write it to your home directory as a hidden file.
|
||||
curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ./bash-preexec.sh
|
||||
# Source our file to bring it into our environment
|
||||
source .bash-preexec.sh
|
||||
|
||||
source "$workdir/ble-nightly/ble.sh"
|
||||
}
|
||||
|
||||
# shellcheck disable=SC1091 source=$HOME/.bash-preexec.sh
|
||||
if [[ -f "$SZ_ENV_ROOT/lib/bash-preexec/.bash-preexec.sh" ]]; then
|
||||
SZ_ENV_BASH_LOAD_PREEXEC='. "$SZ_ENV_ROOT/lib/bash-preexec/.bash-preexec.sh"'
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "Bash-preexec will be loaded."
|
||||
fi
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
update-ble.sh() {
|
||||
[[ -n "${DBG}" ]] && set -x
|
||||
local workdir="$SZ_ENV_ROOT/lib/ble.sh.curl"
|
||||
[ -d "$workdir" ] && rm -fR "$workdir"
|
||||
mkdir -p "$workdir"
|
||||
|
||||
cd "$workdir"
|
||||
curl -L https://github.com/akinomyoga/ble.sh/releases/download/nightly/ble-nightly.tar.xz | tar xJf -
|
||||
|
||||
source "$workdir/ble-nightly/ble.sh"
|
||||
[[ -n "${DBG}" ]] && set +x
|
||||
}
|
||||
if [ -f "$SZ_ENV_ROOT/lib/ble.sh.curl/ble-nightly/ble.sh" ]; then
|
||||
source "$SZ_ENV_ROOT/lib/ble.sh.curl/ble-nightly/ble.sh" --noattach
|
||||
fi
|
||||
|
||||
if [[ -n "${DBG}" && -n "${BLE_VERSION-}" ]]; then
|
||||
echo "ble.sh will be loaded."
|
||||
fi
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd broot; then
|
||||
source /mnt/szmedia/USERDATA/home/sz/.config/broot/launcher/bash/br
|
||||
fi
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if [ -f "$SZ_ENV_ROOT/lib/complete-alias" ]; then
|
||||
source "$SZ_ENV_ROOT/lib/complete-alias" --noattach
|
||||
fi
|
||||
|
||||
if [[ -n "${DBG}" && -n "$( command -v _complete_alias )" ]]; then
|
||||
echo "complete-alias will be loaded."
|
||||
fi
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
export ENVMAN_LOAD=''
|
||||
|
||||
if [ -s "$HOME/.config/envman/load.sh" ]; then
|
||||
[[ -n "${DBG}" ]] && echo "Loading envman"
|
||||
source "$HOME/.config/envman/load.sh"
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "${PATH//:/\n}"
|
||||
fi
|
||||
|
||||
if is_cmd webi; then
|
||||
. <(webi --init "${SHELL##*/}")
|
||||
fi
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
# Helper function
|
||||
is_sourced() {
|
||||
if [ -n "$ZSH_VERSION" ]; then
|
||||
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
|
||||
else # Add additional POSIX-compatible shell names here, if needed.
|
||||
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
|
||||
fi
|
||||
return 1; # NOT sourced.
|
||||
}
|
||||
|
||||
BASE_0=${BASE_0:-$0}
|
||||
BASE_SHELL=$(basename "$SHELL")
|
||||
|
||||
is_cmd() {
|
||||
type -p -- "${@}" 2> /dev/null 1> /dev/null
|
||||
}
|
||||
|
||||
if is_sourced; then
|
||||
# shellcheck disable=SC2139 # This expands when defined, not when used.
|
||||
alias _r="unset DBG; exec $SHELL -l "
|
||||
# shellcheck disable=SC2139 # This expands when defined, not when used.
|
||||
alias _rdbg="exec sh -c 'DBG=1 $SHELL -l '"
|
||||
|
||||
SZ_ENV_ROOT=$( cd -- "$( dirname -- "${BASE_0}" )" &> /dev/null && pwd )
|
||||
USER_HOME=$HOME
|
||||
[[ -n "${SUDO_USER}" ]] && USER_HOME="$(eval "echo ~${SUDO_USER}")"
|
||||
|
||||
load_next() {
|
||||
[ "$LOAD_EXIT" != "0" ] && return 1
|
||||
|
||||
if [[ -n "${DBG}" ]]; then
|
||||
echo "Loading ${1}..." 1>&2
|
||||
#shellcheck disable=SC2086
|
||||
${DBG/%1/:} 1>&2
|
||||
fi
|
||||
#shellcheck source=/dev/null
|
||||
. "${1}"
|
||||
}
|
||||
|
||||
load_all() {
|
||||
local ALL_ENV_FILES
|
||||
if [ -z "$SZ_ENV_LOADED" ]; then
|
||||
SZ_ENV_LOADED=1
|
||||
LOAD_EXIT=0
|
||||
|
||||
# The following constructs a list of load_next ... commands
|
||||
FIND_CMD="$( printf "%s " \
|
||||
"find ~/.config/sz.env -xdev -type d -not -name '*.off'" \
|
||||
"-exec sh -c '" \
|
||||
'find "$1" -xdev -maxdepth 1 -type f' \
|
||||
'-name "ID_*.env" -or -name "ID_*.env.'"${BASE_SHELL}"\" \
|
||||
"| sort' shell '{}' ';'" \
|
||||
"-exec sh -c '" \
|
||||
'find "$1" -xdev -maxdepth 1 -type f' \
|
||||
'-name "PATH_*.env" -or -name "PATH_*.env.'"${BASE_SHELL}"\" \
|
||||
"| sort' shell '{}' ';'" \
|
||||
"-exec sh -c '" \
|
||||
'find "$1" -xdev -maxdepth 1 -type f' \
|
||||
'-name "*.env" -or -name "*.env.'"${BASE_SHELL}"\" \
|
||||
'| grep -Ev "/(PATH|ID)_[^/]+$"' \
|
||||
"| sort' shell '{}' ';'" \
|
||||
"-exec sh -c '" \
|
||||
'find "$1" -xdev -maxdepth 1 -type f -name "PATH_zz_cleanup.env"' \
|
||||
"' shell '{}' ';'"
|
||||
)"
|
||||
ALL_ENV_FILES="$(
|
||||
eval "$FIND_CMD" | sed -e 's/^/load_next "/; s/$/";/'
|
||||
)"
|
||||
${DBG/%1/:} unset FIND_CMD
|
||||
if [ -n "$DBG_NO_SZ_LOAD" ]; then
|
||||
ALL_ENV_FILES=$(<<<"$ALL_ENV_FILES" sed -Ee '
|
||||
/PATH_/!s/^(load_next )/# \1/
|
||||
')
|
||||
printf 'Loading limited environment...\n'
|
||||
fi
|
||||
# Run the constructed (see above) list
|
||||
eval "$ALL_ENV_FILES"
|
||||
${DBG/%1/:} unset ALL_ENV_FILES
|
||||
fi
|
||||
}
|
||||
load_all
|
||||
elif [[ "$1" == '-' ]]; then
|
||||
echo "BASE_0=${BASE_0}"
|
||||
cat "${0}"
|
||||
else
|
||||
is_cmd "${BASE_0##*/}" && SCRIPT_NAME="${BASE_0##*/}" || SCRIPT_NAME="${BASE_0/$HOME/\~}"
|
||||
printf '%s\n' \
|
||||
"It seems '$SCRIPT_NAME' was invoked as a standalone script." \
|
||||
'This script is designed to produce output that is sourced.' \
|
||||
'' \
|
||||
'The recommended way is to use calling pattern below:' \
|
||||
" $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \
|
||||
''
|
||||
fi
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd szetup-kubectl4k3s && [ "$(systemctl is-active k3s.service)" = "active" ]; then
|
||||
. <( szetup-kubectl4k3s - )
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "kubectl for k3s setup complete."
|
||||
fi
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if [[ -x "${CUSTOM_NVIM_PATH:-$HOME/.local/bin/nvim}" ]]; then
|
||||
fix_nvim () {
|
||||
CUSTOM_NVIM_PATH="${CUSTOM_NVIM_PATH:-$HOME/.local/bin/nvim}"
|
||||
printf '%s\n' \
|
||||
"update-alternatives --install /usr/bin/editor editor '${CUSTOM_NVIM_PATH}' 110" \
|
||||
"update-alternatives --install /usr/bin/edit edit '${CUSTOM_NVIM_PATH}' 110" \
|
||||
"update-alternatives --install /usr/bin/ex ex '${CUSTOM_NVIM_PATH}' 110" \
|
||||
"update-alternatives --install /usr/bin/vi vi '${CUSTOM_NVIM_PATH}' 110" \
|
||||
"update-alternatives --install /usr/bin/view view '${CUSTOM_NVIM_PATH}' 110" \
|
||||
"update-alternatives --install /usr/bin/vim vim '${CUSTOM_NVIM_PATH}' 110" \
|
||||
"update-alternatives --install /usr/bin/vimdiff vimdiff '${CUSTOM_NVIM_PATH}' 110" \
|
||||
"update-alternatives --set editor '${CUSTOM_NVIM_PATH}'" \
|
||||
"update-alternatives --set edit '${CUSTOM_NVIM_PATH}'" \
|
||||
"update-alternatives --set ex '${CUSTOM_NVIM_PATH}'" \
|
||||
"update-alternatives --set vi '${CUSTOM_NVIM_PATH}'" \
|
||||
"update-alternatives --set view '${CUSTOM_NVIM_PATH}'" \
|
||||
"update-alternatives --set vim '${CUSTOM_NVIM_PATH}'" \
|
||||
"update-alternatives --set vimdiff '${CUSTOM_NVIM_PATH}'"
|
||||
}
|
||||
fi
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd midclt; then
|
||||
if [ -n "$SCALE_POOL_ROOT" ]; then
|
||||
if [ -e "$SCALE_POOL_ROOT/jailmaker/jlmkr.py" ]; then
|
||||
#alias jlmkr="bash -c '_jlmkr() { $SCALE_POOL_ROOT/jailmaker/jlmkr.py \${@:---help}; }; _jlmkr \$@' "
|
||||
function jlmkr() { sudo VISUAL="${VISUAL:-}" EDITOR="${EDITOR:-}" $SCALE_POOL_ROOT/jailmaker/jlmkr.py "${@:---help}"; }
|
||||
|
||||
jlmkr-zellij() {
|
||||
zellij action go-to-tab-name --create "jailmkr"
|
||||
zellij action new-pane --name "${1:?must pass jail name}@jlmkr" -- sh -ci "reset; sudo $SCALE_POOL_ROOT/jailmaker/jlmkr.py shell --uid ${UID} ${1}"
|
||||
zellij action focus-previous-pane
|
||||
zellij action close-pane
|
||||
}
|
||||
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
BASE_SHELL=${BASE_SHELL:-${SHELL##*/}}
|
||||
|
||||
if is_cmd atuin; then
|
||||
if [[ "${BASE_SHELL}" == "bash" ]] && ! [[ -n "$SZ_ENV_BASH_LOAD_PREEXEC$BLE_VERSION" ]]; then
|
||||
printf '%s\n' \
|
||||
'atuin was found, but bash-preexec or ble.sh are not loaded,' \
|
||||
'to load atuin, first run update-ble.sh or update-bash-preexec ' \
|
||||
'then relaod (_r) the shell.'
|
||||
fi
|
||||
|
||||
. <( atuin init "${BASE_SHELL}" )
|
||||
. <( atuin gen-completions --shell ${BASE_SHELL} )
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "atuin loaded."
|
||||
fi
|
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd lsd; then
|
||||
|
||||
alias _ls="$(command -v lsd) "
|
||||
alias lg="ll --git "
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "assigned lsd as ls alias."
|
||||
|
||||
fi
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
BASE_SHELL=${BASE_SHELL:-${SHELL##*/}}
|
||||
|
||||
if is_cmd pet; then
|
||||
. <( pet completion ${BASE_SHELL} )
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "pet loaded."
|
||||
fi
|
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd load-starship; then
|
||||
. <( load-starship - )
|
||||
[[ -n "${DBG}" ]] && echo "starship loaded."
|
||||
elif [[ -n "${DBG}" ]]; then
|
||||
>&2 printf '%s\n' \
|
||||
'starship is not installed, you can install by running:' \
|
||||
'\tcurl -sS https://starship.rs/install.sh | FORCE=1 BIN_DIR=$HOME/bin sh > /dev/null' \
|
||||
''
|
||||
|
||||
fi
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd vivid && [ -z "$LS_COLORS" ]; then
|
||||
|
||||
export LS_COLORS="$(vivid generate alabaster_dark)"
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "LS_COLORS loaded with vivid."
|
||||
|
||||
fi
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if is_cmd eza; then
|
||||
|
||||
alias _ls="$(command -v eza) --icons "
|
||||
alias lg="ll --git --git-repos-no-status"
|
||||
|
||||
[[ -n "${DBG}" ]] && echo "assigned eza as ls alias."
|
||||
|
||||
fi
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
BASE_SHELL=${BASE_SHELL:-${SHELL##*/}}
|
||||
|
||||
if [[ "${BASE_SHELL}" == "bash" ]]; then
|
||||
eval "${SZ_ENV_BASH_LOAD_PREEXEC}"
|
||||
if [[ -n "${BLE_VERSION-}" ]]; then
|
||||
[[ -n "${DBG}" ]] && echo "attaching ble.sh"
|
||||
ble-attach
|
||||
fi
|
||||
fi
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
# shellcheck disable=SC1090
|
||||
|
||||
if is_cmd 'chezmoi'; then
|
||||
alias cz="chezmoi "
|
||||
eval "$( chezmoi completion "${SHELL##*/}" | sed -Ee 's/(complete -o default .* chezmoi)/\1 cz/' )"
|
||||
|
||||
export CHEZMOI_GITHUB_ACCESS_TOKEN={{- .githubToken | quote }}
|
||||
|
||||
CZG_ROOT="$(chezmoi git -- rev-parse --show-toplevel)"
|
||||
alias czg="git --work-tree=$CZG_ROOT --git-dir=$CZG_ROOT/.git "
|
||||
unset CZG_ROOT
|
||||
|
||||
complete -F _complete_alias czg
|
||||
|
||||
chezmoi() {
|
||||
${SET_X:-:} -x
|
||||
case "$1" in
|
||||
cd) cd "$(SET_X=':' command chezmoi source-path ${2})" ;;
|
||||
edit) ${VISUAL:-${EDITOR:-vi}} $(SET_X=':' chezmoi source-path "${@:2}") ;;
|
||||
source-path) printf '%s\n' "${@:2}" | xargs -r chezmoi source-path ;;
|
||||
*) command chezmoi "${@}" ;;
|
||||
esac
|
||||
${SET_X:-:} +x
|
||||
}
|
||||
czcd() { chezmoi cd "${@}"; }
|
||||
czedext() {
|
||||
local CZ_EXT="$(find $(command chezmoi source-path) -mindepth 1 -maxdepth 1 -name '.chezmoiexternal.*')"
|
||||
CZ_EXT="${CZ_EXT:-$(chezmoi source-path "${@}")/.chezmoiexternal.yaml.tmpl}"
|
||||
"${VISUAL:-${EDITOR:-vi}}" "${CZ_EXT}"
|
||||
}
|
||||
czed() {
|
||||
local EDITLIST=() f _f
|
||||
for _f in "${@}"; do
|
||||
[[ -e "$_f" ]] || f="$(which "$_f")"
|
||||
[[ -z "$f" ]] && is_cmd tv && f="$(tv "$_f")" || f=$_f
|
||||
EDITLIST=( "${EDITLIST[@]}" "$f" )
|
||||
done
|
||||
EDITLIST=("${@}")
|
||||
chezmoi edit "${EDITLIST[@]}" --apply --interactive
|
||||
}
|
||||
alias czx="CZ_EXTR=1 chezmoi "
|
||||
fi
|
||||
|
||||
# vim: set ft=bash sw=4 sts=4 et:
|
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
if ! is_cmd atuin && is_cmd load-fzf; then
|
||||
. <( load-fzf - )
|
||||
fi
|
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env -S bash -c 'echo "Not a user script. source(aka .) only"'
|
||||
|
||||
BASE_SHELL=${BASE_SHELL:-${SHELL##*/}}
|
||||
|
||||
if is_cmd tsh && tsh version | grep -q '^Teleport'; then
|
||||
tsh-login() {
|
||||
command tsh login --proxy=teleport.vastdata.com "${@}"
|
||||
}
|
||||
|
||||
. <(tsh --completion-script-${BASE_SHELL})
|
||||
fi
|
1
chezmoi.roots/_src.posix/private_dot_config/vim/_init
Symbolic link
1
chezmoi.roots/_src.posix/private_dot_config/vim/_init
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../_src.all/private_dot_config/vim/_init
|
1
chezmoi.roots/_src.posix/private_dot_local/bin/.keep
Symbolic link
1
chezmoi.roots/_src.posix/private_dot_local/bin/.keep
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../_src.all/private_dot_local/bin/.keep
|
|
@ -0,0 +1,41 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
REMOTE_HOST=("${@:--}")
|
||||
|
||||
if [[ "${#REMOTE_HOST}" -eq 1 && "${REMOTE_HOST[0]}" == '-' ]]; then
|
||||
read -a REMOTE_HOST
|
||||
fi
|
||||
|
||||
ssh_do() {
|
||||
local USER="${1}" HOST="${2:?}"
|
||||
# BLINDLY Trust host keys ( https://stackoverflow.com/a/74410573/799379 )
|
||||
[ 1 -eq "${NO_REFRESH}" ] || (
|
||||
ssh-keygen -F "$HOST" &>/dev/null && ssh-keygen -R "$HOST" &>/dev/null
|
||||
)
|
||||
ssh-keygen -F "$HOST" &>/dev/null || (
|
||||
ssh-keyscan -Ht ed25519 "$HOST" || ssh-keyscan -H "$HOST"
|
||||
) | grep -v '^#' >> "$HOME/.ssh/known_hosts"
|
||||
|
||||
SSH_ASKPASS_REQUIRE=never \
|
||||
ssh \
|
||||
-o PasswordAuthentication=no \
|
||||
-o LogLevel=ERROR \
|
||||
-o BatchMode=yes \
|
||||
-o ConnectTimeout=2 \
|
||||
-ttn \
|
||||
"${USER:+${USER}@}${HOST}" -- "${@:3}" \
|
||||
|| (printf '\n'; printf 'Exit code: %s\n' "$?" >&2)
|
||||
}
|
||||
|
||||
for _host in "${REMOTE_HOST[@]}"; do
|
||||
printf '%-40s: ' "$_host"
|
||||
if ssh_do "" "$_host" hostname &>/dev/null; then
|
||||
echo "ready"
|
||||
else
|
||||
printf 'Attempting to copy SSH key...\n\n'
|
||||
ssh-copy-id "$_host"
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
GH_PROJECT="${1}"
|
||||
GH_DL_TAG="${2:-latest}"
|
||||
GH_FILTER="${3:-deb}"
|
||||
if [[ ! "$GH_FILTER" =~ '(' ]]; then
|
||||
GH_FILTER="contains(\"${GH_FILTER}\")"
|
||||
fi
|
||||
SRC_URL=https://api.github.com/repos/${GH_PROJECT}/releases/${GH_DL_TAG}
|
||||
DL_URL=$( \
|
||||
curl -sL curl ${SRC_URL} \
|
||||
| jq -r " \
|
||||
.assets[] \
|
||||
| select(.browser_download_url \
|
||||
| ${GH_FILTER} ) \
|
||||
| .browser_download_url \
|
||||
")
|
||||
[[ -n "$DL_URL" ]] \
|
||||
&& printf "%s\n" $DL_URL \
|
||||
|| return 1 2>/dev/null || exit 1
|
|
@ -0,0 +1,38 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
# Helper function
|
||||
is_sourced() {
|
||||
if [ -n "$ZSH_VERSION" ]; then
|
||||
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
|
||||
else # Add additional POSIX-compatible shell names here, if needed.
|
||||
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
|
||||
fi
|
||||
return 1; # NOT sourced.
|
||||
}
|
||||
|
||||
BASE_0=${BASE_0:-$0}
|
||||
BASE_SHELL=$(basename "$SHELL")
|
||||
|
||||
if is_sourced; then
|
||||
starship() {
|
||||
if [[ ! -x "$HOME/bin/starship" ]]; then
|
||||
curl -sS https://starship.rs/install.sh | FORCE=1 BIN_DIR="$HOME/bin" sh > /dev/null
|
||||
fi
|
||||
"$HOME/bin/starship" "${@}"
|
||||
}
|
||||
# shellcheck disable=SC1090
|
||||
. <( starship init "$BASE_SHELL" ) 2> /dev/null
|
||||
. <( starship completions ${BASE_SHELL} ) 2> /dev/null
|
||||
|
||||
elif [[ "$1" == '-' ]]; then
|
||||
echo "BASE_0=${BASE_0}"
|
||||
cat "${0}"
|
||||
else
|
||||
SCRIPT_NAME="$BASE_0"
|
||||
printf '%s\n' \
|
||||
"It seems $SCRIPT_NAME was invoked as a script. It should be sourced instead." \
|
||||
'The easiest way is to call it like this:' \
|
||||
" $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \
|
||||
''
|
||||
fi
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
# Helper function
|
||||
is_sourced() {
|
||||
if [ -n "$ZSH_VERSION" ]; then
|
||||
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
|
||||
else # Add additional POSIX-compatible shell names here, if needed.
|
||||
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
|
||||
fi
|
||||
return 1; # NOT sourced.
|
||||
}
|
||||
|
||||
BASE_0=${BASE_0:-$0}
|
||||
BASE_SHELL=$(basename "$SHELL")
|
||||
|
||||
if is_sourced; then
|
||||
webi() {
|
||||
if [[ ! -x "${HOME}/.local/bin/webi" ]]; then
|
||||
printf '%s\n' \
|
||||
"webi isn't installed, install by running:" \
|
||||
" curl -sS https://webi.sh/webi | sh"
|
||||
return
|
||||
fi
|
||||
${HOME}/.local/bin/webi "${@}"
|
||||
}
|
||||
if is_cmd webi; then
|
||||
webi
|
||||
fi
|
||||
|
||||
elif [[ "$1" == '-' ]]; then
|
||||
cat "${BASH_SOURCE[0]}"
|
||||
else
|
||||
SCRIPT_NAME="$BASE_0"
|
||||
printf '%s\n' \
|
||||
"It seems $SCRIPT_NAME was invoked as a script. It should be sourced instead." \
|
||||
'The easiest way is to call it like this:' \
|
||||
" $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \
|
||||
''
|
||||
fi
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
# Helper function
|
||||
is_sourced() {
|
||||
if [ -n "$ZSH_VERSION" ]; then
|
||||
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
|
||||
else # Add additional POSIX-compatible shell names here, if needed.
|
||||
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
|
||||
fi
|
||||
return 1; # NOT sourced.
|
||||
}
|
||||
|
||||
BASE_0=${BASE_0:-$0}
|
||||
BASE_SHELL="${BASE_SHELL:-$(basename "$SHELL")}"
|
||||
|
||||
if is_sourced; then
|
||||
zellij-cleanup() {
|
||||
env which zellij > /dev/null && command -v zellij | grep -E "^$HOME" | ${SUDO:-} xargs -tr rm
|
||||
[[ -d "$HOME/.cache/zellij" ]] \
|
||||
&& ${SUDO:-} rm -fR "$HOME/.cache/zellij"
|
||||
[[ -d "$HOME/Library/Caches/org.Zellij-Contributors.Zellij" ]] \
|
||||
&& ${SUDO:-} rm -fR "$HOME/Library/Caches/org.Zellij-Contributors.Zellij"
|
||||
find /tmp -maxdepth 1 -mindepth 1 -type d -name 'zellij*' -print0 | ${SUDO:-} xargs -r0t rm -fR
|
||||
if [[ -d "$HOME/.cache/zellij" || -d "$HOME/Library/Caches/org.Zellij-Contributors.Zellij" ]]; then
|
||||
printf 'Zellij cleanup failed to remove the cache directory, you might still have a zellij session active.\n'
|
||||
else
|
||||
printf 'Zellij has been cleaned up, you can now reinstall it.\n'
|
||||
unset -f zellij-cleanup
|
||||
fi
|
||||
}
|
||||
refresh-zellij() {
|
||||
${SET_X-:} -x
|
||||
local bin_path=~/.local/bin/zellij
|
||||
local cached_path=~/.cache/chezmoi/tmp/zellij
|
||||
if [ -z "$(env which zellij)" ] && [ -x "${cached_path}" ]; then
|
||||
printf "Grabbing zellij from the web!\n"
|
||||
cp "${cached_path}" "${bin_path}"
|
||||
fi
|
||||
local cached_path=/tmp/zellij/bootstrap/zellij
|
||||
if [ -z "$(env which zellij)" ] && ! [ -x "${bin_path}" ]; then
|
||||
if [[ ! -r "${cached_path}" ]]; then
|
||||
printf "Grabbing zellij from the web!\n"
|
||||
bash <(curl -sL zellij.dev/launch) "--help" > /dev/null 2>&1 || true
|
||||
fi
|
||||
if [[ -r "${cached_path}" ]]; then
|
||||
mv "${cached_path}" "${bin_path}"
|
||||
rm -fR /tmp/zellij
|
||||
fi
|
||||
fi
|
||||
refresh-zellij() { :; }
|
||||
}
|
||||
zellij() {
|
||||
refresh-zellij
|
||||
if [[ $# -eq 0 ]]; then
|
||||
env zellij attach -c $USER@$(hostname)
|
||||
else
|
||||
env zellij "${@}"
|
||||
fi
|
||||
}
|
||||
|
||||
zellij-load-completion() {
|
||||
if [[ "${BASE_SHELL}" == "zsh" ]]; then
|
||||
type _zellij > /dev/null \
|
||||
|| . <( env zellij setup --generate-completion zsh | sed -Ee 's/^(_(zellij) ).*/compdef \1\2/' )
|
||||
else
|
||||
. <( env zellij setup --generate-completion "$BASE_SHELL" )
|
||||
fi
|
||||
}
|
||||
${SET_X-:} -x
|
||||
if [[ -n "$(env which zellij)" ]]; then
|
||||
zellij-load-completion
|
||||
fi
|
||||
${SET_X-:} -x
|
||||
# Was needed when zsh would load
|
||||
# . <( zellij setup --generate-completion "$BASE_SHELL" | sed -ne '/^function/,$p' )
|
||||
if [[ -z "$ZELLIJ_SESSION_NAME" ]]; then
|
||||
zellij attach -c $USER@$(hostname)
|
||||
fi
|
||||
|
||||
elif [[ "$1" == '-' ]]; then
|
||||
cat "${BASH_SOURCE[0]}"
|
||||
else
|
||||
SCRIPT_NAME="$BASE_0"
|
||||
printf '%s\n' \
|
||||
"It seems $SCRIPT_NAME was invoked as a script. It should be sourced instead." \
|
||||
'The easiest way is to call it like this:' \
|
||||
" $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \
|
||||
''
|
||||
fi
|
||||
|
||||
# vim: set ft=sh expandtab tabstop=4 shiftwidth=4:
|
|
@ -0,0 +1,123 @@
|
|||
#! /usr/bin/env bash
|
||||
# shellcheck disable=SC2034,SC1090
|
||||
# SC2034 variables appear unsued. export if used externally
|
||||
# - uneeded, as this checked whether script is sourced
|
||||
# SC1090 Can't follow non-constant source
|
||||
|
||||
# Use basename instead of ${0:##*/} to be POSIX compliant
|
||||
# Some shells return -<name> in $0 when sourced, ${0#-} drops that initial dash
|
||||
BASE_0=${BASE_0:-$(basename -- "${0#-}")}
|
||||
SCRIPT_DIR=${SCRIPT_DIR:-"$( cd -- "$( dirname -- "$0" )" &> /dev/null && pwd )"}
|
||||
BASE_SHELL=$(basename "$SHELL")
|
||||
|
||||
# Helper function
|
||||
is_sourced() {
|
||||
DBG_="$(
|
||||
printf '\n\t\t%-12s%s' '$0:' "$0" BASE_0: "$BASE_0" BASE_SHELL: "$BASE_SHELL"
|
||||
)"
|
||||
if [ -n "$ZSH_VERSION" ]; then
|
||||
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
|
||||
else
|
||||
case "$(basename -- "${0}")" in $BASE_SHELL|-$BASE_SHELL) return 0;; esac
|
||||
fi
|
||||
return 1; # NOT sourced.
|
||||
}
|
||||
|
||||
if [[ "$1" == '-' ]]; then
|
||||
printf 'BASE_0="%s"\nSCRIPT_DIR=%s\n' "${BASE_0}" "${SCRIPT_DIR}"
|
||||
cat "${BASH_SOURCE[0]}"
|
||||
elif is_sourced; then
|
||||
# This part is sourced, and might run in a non-bash shell
|
||||
DBG_="Is Sourced"
|
||||
USER_HOME=$HOME
|
||||
[[ -n "${SUDO_USER}" ]] && USER_HOME="$(eval "echo ~${SUDO_USER}")"
|
||||
|
||||
[[ -n "$KUBECONFIG" && -r "$KUBECONFIG" ]] || unset KUBECONFIG
|
||||
|
||||
[[ ! -r "$HOME/.kube/config" ]] \
|
||||
|| export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/config}"
|
||||
|
||||
if [[ -z "$KUBECONFIG" && -z "$FIX_KUBECTL_RECALL" ]]; then
|
||||
(unset kubectl 2>/dev/null) || (unalias kubectl 2>/dev/null) || true
|
||||
|
||||
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||||
fi
|
||||
|
||||
(unset kubectl-fix 2> /dev/null) || true
|
||||
|
||||
DBG_="Check if k3s exists, but kubectl isn't available"
|
||||
if (type 'k3s' >/dev/null 2>&1) && ! (type 'kubectl' >/dev/null 2>&1); then
|
||||
DBG_="Define kubectl"
|
||||
if [[ -r "${KUBECONFIG}" ]]; then
|
||||
kubectl() { k3s kubectl "${@}"; }
|
||||
elif [[ -n "${KUBECONFIG}" && -e "${KUBECONFIG}" ]]; then
|
||||
eval "
|
||||
kubectl-fix() {
|
||||
mkdir \"$HOME/.kube\" -p
|
||||
if [[ -e \"\${KUBECONFIG}\" && ! -r \"$HOME/.kube/config\" ]]; then
|
||||
sudo install --mod 600 --owner \"$USER\" \"\${KUBECONFIG}\" \"$HOME/.kube/config\"
|
||||
unset KUBECONFIG
|
||||
fi
|
||||
FIX_KUBECTL_RECALL=1 . \"${SCRIPT_DIR}/${BASE_0}\"
|
||||
}"
|
||||
printf '%s\n' \
|
||||
"KUBECONFIG[${KUBECONFIG}] exsits, but is unreadable." \
|
||||
'Run kubectl-fix (which will invoke sudo) to fix'
|
||||
fi
|
||||
fi
|
||||
|
||||
if (type 'kubectl' >/dev/null 2>&1); then
|
||||
|
||||
. <( kubectl completion "${BASE_SHELL}" )
|
||||
|
||||
if (type 'kubectl-cnpg' >/dev/null 2>&1 ); then
|
||||
. <( kubectl cnpg completion "${BASE_SHELL}" )
|
||||
fi
|
||||
if ! (type 'kubectl-cnpg' >/dev/null 2>&1) || [[ -n "$UPGRADE" ]]; then
|
||||
DL_VER=1.22.0
|
||||
GH_URL=https://github.com/cloudnative-pg/cloudnative-pg
|
||||
DL_FILE="kubectl-cnpg_${DL_VER}_linux_x86_64.deb"
|
||||
URL=${GH_URL}/releases/download/v${DL_VER}/${DL_FILE}
|
||||
printf '%s\n' \
|
||||
'To download and install cnpg kubectl plugin, run:' \
|
||||
" curl -sSLO ${URL}" \
|
||||
" sudo dpkg -i $DL_FILE"
|
||||
fi
|
||||
|
||||
if ! (type 'kubetui' >/dev/null 2>&1) || [[ -n "$UPGRADE" ]]; then
|
||||
DL_VER=1.5.0
|
||||
GH_URL=https://github.com/sarub0b0/kubetui
|
||||
DL_FILE=kubetui-x86_64-unknown-linux-musl-rustls
|
||||
URL=${GH_URL}/releases/download/v${DL_VER}/${DL_FILE}
|
||||
printf '%s\n' \
|
||||
'To download and install kubetui, run:' \
|
||||
" curl -sSL ${URL} > ~/bin/kubetui" \
|
||||
" chmod +x ~/bin/kubetui"
|
||||
fi
|
||||
|
||||
if ! (type 'k9s' >/dev/null 2>&1) || [[ -n "$UPGRADE" ]]; then
|
||||
printf '%s\n' \
|
||||
'To download and install k9s, run:' \
|
||||
" curl -sS https://webinstall.dev/k9s | bash"
|
||||
fi
|
||||
|
||||
if (type 'k3s' >/dev/null 2>&1 ); then
|
||||
. <( k3s completion "${SHELL##*/}" )
|
||||
fi
|
||||
|
||||
if (type 'helm' >/dev/null 2>&1); then
|
||||
. <( helm completion "${SHELL##*/}" 2>/dev/null )
|
||||
fi
|
||||
|
||||
kg() {
|
||||
kubectl get "${NS:+--namespace=}${NS:---all-namespaces}" "${@:-pods}" | { sed -u 1q; sort; }
|
||||
}
|
||||
fi
|
||||
else
|
||||
SCRIPT_NAME="$BASE_0"
|
||||
printf '%s\n' \
|
||||
"It seems $SCRIPT_NAME was invoked as a script. It should be sourced instead." \
|
||||
'The easiest way is to call it like this:' \
|
||||
" $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \
|
||||
''
|
||||
fi
|
|
@ -0,0 +1,62 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_NAME="${0##/*}"
|
||||
usage() {
|
||||
printf '%s\n' \
|
||||
'Search Teleport for an ssh host with an interactive selection' \
|
||||
'' \
|
||||
'Usage:' \
|
||||
" [SILENT=1] [BATCH=1] [QUERY='query syntax'] ${SCRIPT_NAME} <search string>" \
|
||||
'' \
|
||||
'Arguments:' \
|
||||
'' \
|
||||
'Examples:' \
|
||||
' $ BATCH=1 tsh-get tesla' \
|
||||
' cluster_psnt=VAST-TESLA-AUS-1,hostname=aus08p1vstfs01-cn1-DO-NOT-LOGIN' \
|
||||
' cluster_psnt=VA22374479,hostname=c-0-1' \
|
||||
' cluster_psnt=VA22465472,hostname=c-0-1' \
|
||||
'' \
|
||||
' tsh-get tesla ' \
|
||||
''
|
||||
exit 2
|
||||
}
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
SILENT=${SILENT:-${BATCH:+1}}
|
||||
SEARCH="$1"
|
||||
QUERY="${QUERY:+--query=${QUERY}}"
|
||||
|
||||
${SILENT:+:} printf 'Searching for %s...' "$SEARCH" >&2
|
||||
|
||||
OPTIONS="$(
|
||||
tsh ls --search "$SEARCH" ${QUERY} --format json | jq -r ' .[] | (
|
||||
if .metadata.labels.customer_name
|
||||
then "customer_name=" + .metadata.labels.customer_name + ","
|
||||
elif .metadata.labels.Customer
|
||||
then "Customer=" + .metadata.labels.Customer + ","
|
||||
else ""
|
||||
end)
|
||||
+ "cluster_psnt=\(.metadata.labels.cluster_psnt),"
|
||||
+ "hostname=\(.spec.hostname)"
|
||||
'
|
||||
)"
|
||||
|
||||
if [[ -z "$BATCH" && "${OPTIONS}" == *$'\n'* ]]; then
|
||||
SELECTED="$( tv --no-preview <<<"$OPTIONS" )"
|
||||
else
|
||||
SELECTED="$OPTIONS"
|
||||
fi
|
||||
|
||||
if [[ -z "$SELECTED" ]]; then
|
||||
${SILENT:+:} printf 'Aborted (empty response)\n' >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
${SILENT:+:} printf '\n%s selected.\n' "$SELECTED" >&2
|
||||
echo "$SELECTED"
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_NAME="${0##/*}"
|
||||
usage() {
|
||||
printf '%s\n' \
|
||||
'SSH using Teleport with interactive selection and VAST-reasnoble defaults' \
|
||||
'' \
|
||||
"${SCRIPT_NAME} " \
|
||||
'' \
|
||||
'Usage:' \
|
||||
''
|
||||
exit 2
|
||||
}
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
SEARCH="$1"
|
||||
SSHUSER="${SSHUSER:-vastdata}"
|
||||
TUNNEL="${TUNNEL:+-L ${TUNNEL}}"
|
||||
|
||||
TARGET="${SSHUSER}@$(tsh-get "$SEARCH" "$SSHUSER")"
|
||||
|
||||
tsh ssh ${TUNNEL} "${TARGET}" "${@:2}"
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_NAME="${0##*/}"
|
||||
usage() {
|
||||
printf '%s\n' \
|
||||
'Open a tunnel to the VMS external IP' \
|
||||
'' \
|
||||
'Usage:' \
|
||||
" ${SCRIPT_NAME} <search> [ssh args...]" \
|
||||
'' \
|
||||
'Env manipulators:' \
|
||||
' LOCAL_PORT default is 8443' \
|
||||
' TARGET_PORT default is 443' \
|
||||
' SSHUSER default is vastdata' \
|
||||
' VMS default is auto-detected' \
|
||||
''
|
||||
exit 2
|
||||
}
|
||||
|
||||
if [[ $# -eq 0 ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
LOCAL_PORT="${LOCAL_PORT:-8443}"
|
||||
TARGET_PORT="${TARGET_PORT:-443}"
|
||||
SEARCH="$1"
|
||||
SSHUSER="${SSHUSER:-vastdata}"
|
||||
|
||||
TARGET="${SSHUSER}@$(tsh-get "$SEARCH" "$SSHUSER")"
|
||||
|
||||
VMS="${VMS:-"$(tsh ssh "${TARGET}" -- cat /vast/vman/mgmt-vip)"}"
|
||||
|
||||
TUNNEL="${LOCAL_PORT}:${VMS}:${TARGET_PORT}"
|
||||
|
||||
RUN="${RUN:-}"
|
||||
if [[ -z "$RUN" && -n "$(command -v zellij)" ]]; then
|
||||
RUN="zellij run --floating --pinned 'true' --name '${TUNNEL}|${TARGET}|${SEARCH}|${SCRIPT_NAME}' --"
|
||||
fi
|
||||
|
||||
TUNNEL="-L ${LOCAL_PORT}:${VMS}:${TARGET_PORT}"
|
||||
SSH_OPTS="${SSH_OPTS:--N}"
|
||||
|
||||
printf "Executing: %s ...\n" "tsh ssh ${TUNNEL} ${TARGET} ${*:2}" >&2
|
||||
eval "${RUN} tsh ssh ${SSH_OPTS} ${TUNNEL} '${TARGET}' ${*:2}"
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
BASE_0=${BASE_0:-$0}
|
||||
BASE_SHELL=$(basename "$SHELL")
|
||||
|
||||
#! /usr/bin/env bash
|
||||
|
||||
_update-atuin() { (
|
||||
set -e
|
||||
|
||||
local LatestURL="$(
|
||||
get-github-release.sh \
|
||||
atuinsh/atuin \
|
||||
latest atuin-x86_64-unknown-linux-musl.tar.gz \
|
||||
| grep -E 'tar\.gz$'
|
||||
)"
|
||||
local dlPath="$(mktemp --directory --suffix atuin)"
|
||||
local appPath="$HOME/.local/bin"
|
||||
printf 'Downloading from %s... ' "${LatestURL#*/download/}"
|
||||
curl -sLO --output-dir "$dlPath" "$LatestURL" && printf 'Done'
|
||||
printf '\n'
|
||||
( cd "$dlPath"; curl -sL "$LatestURL.sha256" | sha256sum --check )
|
||||
( cd "$appPath"; tar zxf "$dlPath"/*.tar.gz --strip-components=1 --no-anchored 'atuin' )
|
||||
rm -R "$dlPath"
|
||||
|
||||
printf '%s\n' \
|
||||
'atuin binary installed, please restart you shell'
|
||||
); }
|
||||
|
||||
_update-atuin "${@}"
|
|
@ -0,0 +1,57 @@
|
|||
#! /usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
BASE_0=${BASE_0:-$0}
|
||||
BASE_SHELL=$(basename "$SHELL")
|
||||
|
||||
_update-nvim() {
|
||||
local LatestURL="$(get-github-release.sh \
|
||||
neovim/neovim latest appimage \
|
||||
| grep appimage\$
|
||||
)"
|
||||
local appDir="${HOME}/.local/bin"
|
||||
if [ "$USER" = "root" ]; then
|
||||
appDir="${HOME}/usr-local-bin"
|
||||
while umount --types overlay /usr/local/bin 2>/dev/null; do
|
||||
:
|
||||
done
|
||||
mkdir -pm 755 "$appDir" \
|
||||
&& mount -t overlay overlay -o "lowerdir=$appDir:/usr/local/bin" /usr/local/bin
|
||||
update-alternatives --remove vim.tiny /usr/bin/vim.tiny
|
||||
fi
|
||||
local appPath="${appDir}/nvim.AppImage"
|
||||
|
||||
rm "${appDir}/"{nvim.AppImage,nvim,vi,vim,vim.tiny,vimdiff} 2>/dev/null || true
|
||||
|
||||
printf 'Downloading from %s... ' "${LatestURL#*/download/}"
|
||||
curl -sLo "$appPath" "$LatestURL" && printf 'Done'
|
||||
printf '\n'
|
||||
chmod +x "$appPath"
|
||||
|
||||
ln -rs "$appPath" "${appDir}/nvim"
|
||||
ln -rs "$appPath" "${appDir}/vi"
|
||||
ln -rs "$appPath" "${appDir}/vim"
|
||||
ln -rs "$appPath" "${appDir}/vim.tiny"
|
||||
ln -rs "$appPath" "${appDir}/vimdiff"
|
||||
|
||||
if [ "$USER" = "root" ]; then
|
||||
update-alternatives --install /usr/bin/editor editor "$appPath" 110
|
||||
update-alternatives --install /usr/bin/edit edit "$appPath" 110
|
||||
update-alternatives --install /usr/bin/ex ex "$appPath" 110
|
||||
update-alternatives --install /usr/bin/vi vi "$appPath" 110
|
||||
update-alternatives --install /usr/bin/view view "$appPath" 110
|
||||
update-alternatives --install /usr/bin/vim vim "$appPath" 110
|
||||
update-alternatives --install /usr/bin/vimdiff vimdiff "$appPath" 110
|
||||
update-alternatives --set editor "$appPath"
|
||||
update-alternatives --set edit "$appPath"
|
||||
update-alternatives --set ex "$appPath"
|
||||
update-alternatives --set vi "$appPath"
|
||||
update-alternatives --set view "$appPath"
|
||||
update-alternatives --set vim "$appPath"
|
||||
update-alternatives --set vimdiff "$appPath"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
_update-nvim "${@}"
|
|
@ -0,0 +1 @@
|
|||
nvim.AppImage
|
|
@ -0,0 +1 @@
|
|||
nvim
|
|
@ -0,0 +1 @@
|
|||
nvim
|
|
@ -0,0 +1 @@
|
|||
nvim
|
|
@ -0,0 +1 @@
|
|||
nvim
|
1
chezmoi.roots/_src.posix/private_dot_ssh/config
Symbolic link
1
chezmoi.roots/_src.posix/private_dot_ssh/config
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../_src.all/private_dot_ssh/config
|
1
chezmoi.roots/_src.posix/private_dot_ssh/config.d/.keep
Symbolic link
1
chezmoi.roots/_src.posix/private_dot_ssh/config.d/.keep
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../_src.all/private_dot_ssh/config.d/.keep
|
Loading…
Add table
Add a link
Reference in a new issue