Compare commits

...

8 Commits

10 changed files with 477 additions and 148 deletions

View File

@@ -45,6 +45,6 @@ repos:
- id: shfmt - id: shfmt
- repo: https://github.com/rhysd/actionlint - repo: https://github.com/rhysd/actionlint
rev: v1.7.3 rev: v1.7.4
hooks: hooks:
- id: actionlint - id: actionlint

View File

@@ -1,26 +1,26 @@
asdf-plugin-manager 1.4.0 asdf-plugin-manager 1.4.0
nodejs 23.0.0 nodejs 23.1.0
golang 1.23.2 golang 1.23.3
python 3.12.7 python 3.12.7
ruby 3.3.4 ruby 3.3.4
rust 1.82.0 rust 1.82.0
direnv 2.35.0 direnv 2.35.0
fd 10.2.0 fd 10.2.0
1password-cli 2.30.0 1password-cli 2.30.3
age 1.2.0 age 1.2.0
bottom 0.10.2 bottom 0.10.2
dotenv-linter 3.3.0 dotenv-linter 3.3.0
editorconfig-checker 2.8.0 editorconfig-checker 2.8.0
github-cli 2.59.0 github-cli 2.61.0
hadolint 2.12.0 hadolint 2.12.0
kubectl 1.31.1 kubectl 1.31.2
pipx 1.7.1 pipx 1.7.1
pre-commit 4.0.1 pre-commit 4.0.1
ripgrep 14.1.1 ripgrep 14.1.1
shellcheck 0.10.0 shellcheck 0.10.0
shfmt 3.9.0 shfmt 3.10.0
terragrunt 0.67.15 terragrunt 0.68.8
tf-summarize 0.3.11 tf-summarize 0.3.13
yamllint 1.35.1 yamllint 1.35.1
yq 4.44.3 yq 4.44.3
bats 1.11.0 bats 1.11.0

View File

@@ -53,7 +53,7 @@ load_antigen()
antigen bundle brew antigen bundle brew
antigen bundle colored-man-pages antigen bundle colored-man-pages
antigen bundle zsh-users/zsh-completions antigen bundle zsh-users/zsh-completions
antigen bundle eza x-have eza && antigen bundle eza
# this needs to be the last item # this needs to be the last item
antigen bundle zsh-users/zsh-syntax-highlighting antigen bundle zsh-users/zsh-syntax-highlighting
@@ -99,3 +99,7 @@ main()
} }
main "$@" main "$@"
# Lando
export PATH="$HOME/.lando/bin${PATH+:$PATH}"; #landopath

View File

@@ -1,6 +1,6 @@
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab 1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab
age https://github.com/threkk/asdf-age.git 396bdf6 age https://github.com/threkk/asdf-age.git 396bdf6
asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git c721275 asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git b5862c1
bats https://github.com/timgluz/asdf-bats.git 299551f bats https://github.com/timgluz/asdf-bats.git 299551f
bottom https://github.com/carbonteq/asdf-btm.git fd8a55a bottom https://github.com/carbonteq/asdf-btm.git fd8a55a
delta https://github.com/andweeb/asdf-delta.git 501318b delta https://github.com/andweeb/asdf-delta.git 501318b
@@ -14,16 +14,16 @@ golang https://github.com/asdf-community/asdf-golang.git
hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230 hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230
kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57 kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57
nodejs https://github.com/asdf-vm/asdf-nodejs.git c36e6f0 nodejs https://github.com/asdf-vm/asdf-nodejs.git c36e6f0
php https://github.com/asdf-community/asdf-php.git 52c669a
pipx https://github.com/yozachar/asdf-pipx.git 31db618 pipx https://github.com/yozachar/asdf-pipx.git 31db618
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42 pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
python https://github.com/asdf-community/asdf-python a3a0185 python https://github.com/asdf-community/asdf-python a3a0185
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665 ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
ruby https://github.com/asdf-vm/asdf-ruby.git e955978 ruby https://github.com/asdf-vm/asdf-ruby.git 194fe45
rust https://github.com/code-lever/asdf-rust.git 95acf4f rust https://github.com/code-lever/asdf-rust.git 95acf4f
shellcheck https://github.com/luizm/asdf-shellcheck.git 66200ff shellcheck https://github.com/luizm/asdf-shellcheck.git 66200ff
shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff
sops https://github.com/feniix/asdf-sops.git 5c7a2fb
terragrunt https://github.com/ohmer/asdf-terragrunt.git 4a6651a terragrunt https://github.com/ohmer/asdf-terragrunt.git 4a6651a
tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26 tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26
yamllint https://github.com/ericcornelissen/asdf-yamllint.git 2f825d9 yamllint https://github.com/ericcornelissen/asdf-yamllint.git bc2813e
yq https://github.com/sudermanjr/asdf-yq.git 772992f yq https://github.com/sudermanjr/asdf-yq.git 772992f

View File

@@ -465,6 +465,9 @@ export TF_PLUGIN_CACHE_DIR="$XDG_CACHE_HOME/terraform/plugin-cache"
msg "Setting up tmux configuration" msg "Setting up tmux configuration"
export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf" export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf"
# tms, https://github.com/jrmoulton/tmux-sessionizer
export TMS_CONFIG_FILE="${XDG_CONFIG_HOME}/tms/config.toml"
# wakatime, https://github.com/wakatime/wakatime-cli # wakatime, https://github.com/wakatime/wakatime-cli
msg "Setting up Wakatime configuration" msg "Setting up Wakatime configuration"
export WAKATIME_HOME="$XDG_STATE_HOME/wakatime" export WAKATIME_HOME="$XDG_STATE_HOME/wakatime"

View File

@@ -1,121 +1,116 @@
"$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json" "$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json"
final_space = true console_title_template = '{{.UserName}}@{{.HostName}} {{.Shell}} in {{.PWD}}'
console_title_template = "{{.UserName}}@{{.HostName}} {{.Shell}} in {{.PWD}}" version = 3
version = 2
auto_upgrade = true auto_upgrade = true
final_space = true
[[blocks]]
alignment = "left"
type = "prompt"
[[blocks.segments]]
foreground = "cyan"
style = "powerline"
template = "{{ .Icon }}"
type = "os"
[[blocks.segments]]
type = "session"
style = "plain"
template = " {{ if .SSHSession }} {{ .UserName }}@{{ end }}{{ .HostName }}"
[[blocks.segments]]
foreground = "cyan"
style = "plain"
template = " {{ .Path }} "
type = "path"
[blocks.segments.properties]
style = "mixed"
[blocks.segments.mapped_locations]
"~/Code/*" = ""
"~/Code/ivuorinen/" = ""
[[blocks.segments]]
type = "git"
style = "plain"
foreground = "lightGreen"
template = "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }}  {{ .StashCount }}{{ end }}"
[blocks.segments.properties]
fetch_status = true
fetch_upstream_icon = true
[blocks.segments.properties.untracked_modes]
"~/Code/oh-my-posh/" = "no"
[[blocks.segments]]
type = "terraform"
style = "plain"
foreground = "#000000"
background = "#ebcc34"
template = "{{.WorkspaceName}}"
[[blocks]]
alignment = "left"
type = "prompt"
[[blocks.segments]]
foreground = "#68a063"
style = "plain"
template = " {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }}"
type = "node"
[blocks.segments.properties]
display_mode = "files"
fetch_package_manager = true
fetch_version = true
[[blocks.segments]]
foreground = "#4063D8"
style = "plain"
template = " {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}"
type = "crystal"
[blocks.segments.properties]
display_mode = "files"
fetch_version = true
[[blocks.segments]]
foreground = "#DE3F24"
style = "plain"
template = " {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}"
type = "ruby"
[blocks.segments.properties]
display_mode = "files"
fetch_version = true
[[blocks.segments]]
foreground = "#FED142"
style = "plain"
template = " {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}"
type = "python"
[blocks.segments.properties]
display_mode = "context"
fetch_virtual_env = false
[[blocks]]
alignment = "left"
newline = true
type = "prompt"
[[blocks.segments]]
background = "transparent"
foreground = "lightGreen"
foreground_templates = [ "{{ if gt .Code 0 }}red{{ end }}" ]
style = "plain"
template = "➜"
type = "status"
[blocks.segments.properties]
always_enabled = true
[transient_prompt] [transient_prompt]
background = "transparent" template = '➜ '
foreground = "lightGreen" foreground = 'lightGreen'
foreground_templates = [ "{{ if gt .Code 0 }}red{{ end }}" ] background = 'transparent'
template = "➜ " foreground_templates = ['{{ if gt .Code 0 }}red{{ end }}']
[[blocks]]
type = 'prompt'
alignment = 'left'
[[blocks.segments]]
style = 'powerline'
template = '{{ .Icon }}'
foreground = 'cyan'
type = 'os'
[[blocks.segments]]
style = 'plain'
template = ' {{ if .SSHSession }} {{ .UserName }}@{{ end }}{{ .HostName }}'
type = 'session'
[[blocks.segments]]
style = 'plain'
template = ' {{ .Path }} '
foreground = 'cyan'
type = 'path'
[blocks.segments.properties]
style = 'mixed'
[[blocks.segments]]
style = 'plain'
template = '{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }}  {{ .StashCount }}{{ end }}'
foreground = 'lightGreen'
type = 'git'
[blocks.segments.properties]
fetch_status = true
fetch_upstream_icon = true
[blocks.segments.properties.untracked_modes]
'~/Code/oh-my-posh/' = 'no'
[[blocks.segments]]
style = 'plain'
template = '{{.WorkspaceName}}'
foreground = '#000000'
background = '#ebcc34'
type = 'terraform'
[[blocks]]
type = 'prompt'
alignment = 'left'
[[blocks.segments]]
style = 'plain'
template = ' {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }}'
foreground = '#68a063'
type = 'node'
[blocks.segments.properties]
display_mode = 'files'
fetch_package_manager = true
fetch_version = true
[[blocks.segments]]
style = 'plain'
template = ' {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}'
foreground = '#4063D8'
type = 'crystal'
[blocks.segments.properties]
display_mode = 'files'
fetch_version = true
[[blocks.segments]]
style = 'plain'
template = ' {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}'
foreground = '#DE3F24'
type = 'ruby'
[blocks.segments.properties]
display_mode = 'files'
fetch_version = true
[[blocks.segments]]
style = 'plain'
template = ' {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ end }}'
foreground = '#FED142'
type = 'python'
[blocks.segments.properties]
display_mode = 'context'
fetch_virtual_env = false
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
style = 'plain'
template = '➜'
foreground = 'lightGreen'
background = 'transparent'
type = 'status'
foreground_templates = ['{{ if gt .Code 0 }}red{{ end }}']
[blocks.segments.properties]
always_enabled = true

5
config/tms/config.toml Normal file
View File

@@ -0,0 +1,5 @@
default_session = "main"
[[search_dirs]]
path = "~/Code"
depth = 10

View File

@@ -1,9 +1,14 @@
local wezterm = require("wezterm") local wezterm = require 'wezterm'
local config = wezterm.config_builder() local config = wezterm.config_builder()
-- Font and font size -- Font and font size
config.font_size = 14.0 config.font_size = 14.0
config.font = wezterm.font("JetBrainsMonoNL Nerd Font Mono") config.font = wezterm.font_with_fallback {
'JetBrainsMonoNL Nerd Font Mono',
'JetBrains Mono',
'Noto Color Emoji',
'Symbols Nerd Font Mono',
}
-- Make the window a bit transparent -- Make the window a bit transparent
config.window_background_opacity = 0.97 config.window_background_opacity = 0.97
@@ -15,16 +20,16 @@ config.send_composed_key_when_left_alt_is_pressed = true
-- Function to detect the theme based on appearance -- Function to detect the theme based on appearance
function Scheme_for_appearance(appearance) function Scheme_for_appearance(appearance)
if appearance:find("Dark") then if appearance:find 'Dark' then
return "Tokyo Night Storm" return 'Tokyo Night Storm'
else else
return "Tokyo Night Day" return 'Tokyo Night Day'
end end
end end
-- Set the color scheme based on appearance -- Set the color scheme based on appearance
---@diagnostic disable-next-line: unused-local ---@diagnostic disable-next-line: unused-local
wezterm.on("window-config-reloaded", function(window, pane) wezterm.on('window-config-reloaded', function(window, pane)
local overrides = window:get_config_overrides() or {} local overrides = window:get_config_overrides() or {}
local appearance = window:get_appearance() local appearance = window:get_appearance()
local scheme = Scheme_for_appearance(appearance) local scheme = Scheme_for_appearance(appearance)

View File

@@ -0,0 +1,212 @@
#compdef oh-my-posh
compdef _oh-my-posh oh-my-posh
# zsh completion for oh-my-posh -*- shell-script -*-
__oh-my-posh_debug()
{
local file="$BASH_COMP_DEBUG_FILE"
if [[ -n ${file} ]]; then
echo "$*" >> "${file}"
fi
}
_oh-my-posh()
{
local shellCompDirectiveError=1
local shellCompDirectiveNoSpace=2
local shellCompDirectiveNoFileComp=4
local shellCompDirectiveFilterFileExt=8
local shellCompDirectiveFilterDirs=16
local shellCompDirectiveKeepOrder=32
local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace keepOrder
local -a completions
__oh-my-posh_debug "\n========= starting completion logic =========="
__oh-my-posh_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}"
# The user could have moved the cursor backwards on the command-line.
# We need to trigger completion from the $CURRENT location, so we need
# to truncate the command-line ($words) up to the $CURRENT location.
# (We cannot use $CURSOR as its value does not work when a command is an alias.)
words=("${=words[1,CURRENT]}")
__oh-my-posh_debug "Truncated words[*]: ${words[*]},"
lastParam=${words[-1]}
lastChar=${lastParam[-1]}
__oh-my-posh_debug "lastParam: ${lastParam}, lastChar: ${lastChar}"
# For zsh, when completing a flag with an = (e.g., oh-my-posh -n=<TAB>)
# completions must be prefixed with the flag
setopt local_options BASH_REMATCH
if [[ "${lastParam}" =~ '-.*=' ]]; then
# We are dealing with a flag with an =
flagPrefix="-P ${BASH_REMATCH}"
fi
# Prepare the command to obtain completions
requestComp="${words[1]} __complete ${words[2,-1]}"
if [ "${lastChar}" = "" ]; then
# If the last parameter is complete (there is a space following it)
# We add an extra empty parameter so we can indicate this to the go completion code.
__oh-my-posh_debug "Adding extra empty parameter"
requestComp="${requestComp} \"\""
fi
__oh-my-posh_debug "About to call: eval ${requestComp}"
# Use eval to handle any environment variables and such
out=$(eval ${requestComp} 2>/dev/null)
__oh-my-posh_debug "completion output: ${out}"
# Extract the directive integer following a : from the last line
local lastLine
while IFS='\n' read -r line; do
lastLine=${line}
done < <(printf "%s\n" "${out[@]}")
__oh-my-posh_debug "last line: ${lastLine}"
if [ "${lastLine[1]}" = : ]; then
directive=${lastLine[2,-1]}
# Remove the directive including the : and the newline
local suffix
(( suffix=${#lastLine}+2))
out=${out[1,-$suffix]}
else
# There is no directive specified. Leave $out as is.
__oh-my-posh_debug "No directive found. Setting do default"
directive=0
fi
__oh-my-posh_debug "directive: ${directive}"
__oh-my-posh_debug "completions: ${out}"
__oh-my-posh_debug "flagPrefix: ${flagPrefix}"
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
__oh-my-posh_debug "Completion received error. Ignoring completions."
return
fi
local activeHelpMarker="_activeHelp_ "
local endIndex=${#activeHelpMarker}
local startIndex=$((${#activeHelpMarker}+1))
local hasActiveHelp=0
while IFS='\n' read -r comp; do
# Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker)
if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then
__oh-my-posh_debug "ActiveHelp found: $comp"
comp="${comp[$startIndex,-1]}"
if [ -n "$comp" ]; then
compadd -x "${comp}"
__oh-my-posh_debug "ActiveHelp will need delimiter"
hasActiveHelp=1
fi
continue
fi
if [ -n "$comp" ]; then
# If requested, completions are returned with a description.
# The description is preceded by a TAB character.
# For zsh's _describe, we need to use a : instead of a TAB.
# We first need to escape any : as part of the completion itself.
comp=${comp//:/\\:}
local tab="$(printf '\t')"
comp=${comp//$tab/:}
__oh-my-posh_debug "Adding completion: ${comp}"
completions+=${comp}
lastComp=$comp
fi
done < <(printf "%s\n" "${out[@]}")
# Add a delimiter after the activeHelp statements, but only if:
# - there are completions following the activeHelp statements, or
# - file completion will be performed (so there will be choices after the activeHelp)
if [ $hasActiveHelp -eq 1 ]; then
if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then
__oh-my-posh_debug "Adding activeHelp delimiter"
compadd -x "--"
hasActiveHelp=0
fi
fi
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
__oh-my-posh_debug "Activating nospace."
noSpace="-S ''"
fi
if [ $((directive & shellCompDirectiveKeepOrder)) -ne 0 ]; then
__oh-my-posh_debug "Activating keep order."
keepOrder="-V"
fi
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
# File extension filtering
local filteringCmd
filteringCmd='_files'
for filter in ${completions[@]}; do
if [ ${filter[1]} != '*' ]; then
# zsh requires a glob pattern to do file filtering
filter="\*.$filter"
fi
filteringCmd+=" -g $filter"
done
filteringCmd+=" ${flagPrefix}"
__oh-my-posh_debug "File filtering command: $filteringCmd"
_arguments '*:filename:'"$filteringCmd"
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
# File completion for directories only
local subdir
subdir="${completions[1]}"
if [ -n "$subdir" ]; then
__oh-my-posh_debug "Listing directories in $subdir"
pushd "${subdir}" >/dev/null 2>&1
else
__oh-my-posh_debug "Listing directories in ."
fi
local result
_arguments '*:dirname:_files -/'" ${flagPrefix}"
result=$?
if [ -n "$subdir" ]; then
popd >/dev/null 2>&1
fi
return $result
else
__oh-my-posh_debug "Calling _describe"
if eval _describe $keepOrder "completions" completions $flagPrefix $noSpace; then
__oh-my-posh_debug "_describe found some completions"
# Return the success of having called _describe
return 0
else
__oh-my-posh_debug "_describe did not find completions."
__oh-my-posh_debug "Checking if we should do file completion."
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
__oh-my-posh_debug "deactivating file completion"
# We must return an error code here to let zsh know that there were no
# completions found by _describe; this is what will trigger other
# matching algorithms to attempt to find completions.
# For example zsh can match letters in the middle of words.
return 1
else
# Perform file completion
__oh-my-posh_debug "Activating file completion"
# We must return the result of this command, so it must be the
# last command, or else we must store its result to return it.
_arguments '*:filename:_files'" ${flagPrefix}"
fi
fi
fi
}
# don't run the completion function when being source-ed or eval-ed
if [ "$funcstack[1]" = "_oh-my-posh" ]; then
_oh-my-posh
fi

View File

@@ -392,18 +392,106 @@ section_brew()
! x-have brew && menu_section "$USAGE_PREFIX" "brew not available on this system" ! x-have brew && menu_section "$USAGE_PREFIX" "brew not available on this system"
} }
section_asdf()
{
USAGE_PREFIX="$SCRIPT asdf <command>"
MENU=(
"install:Install asdf"
"current:Show asdf current versions"
"global:Show asdf global versions"
"installed:Show asdf installed versions"
"local:Show asdf local versions"
"versions:Show asdf versions"
"where:Show asdf where"
"which:Show asdf which"
)
case "$1" in
install)
msg "Installing asdf..."
bash "$DOTFILES/scripts/install-asdf.sh both" \
&& msg_yay "asdf installed!"
;;
current)
asdf current
;;
global)
asdf global
;;
installed)
asdf list
;;
local)
asdf local
;;
versions)
asdf list all
;;
where)
asdf where
;;
which)
asdf which
;;
*) menu_usage "$USAGE_PREFIX" "${MENU[@]}" ;;
esac
}
section_helpers() section_helpers()
{ {
USAGE_PREFIX="$SCRIPT helpers <command>" USAGE_PREFIX="$SCRIPT helpers <command>"
MENU=( MENU=(
"aliases:<shell> (bash, zsh) Show aliases for bash or zsh"
"colors:Show colors"
"env:Show environment variables"
"functions:Show functions"
"nvim:Show nvim keybindings"
"path:Show \$PATH dir by dir" "path:Show \$PATH dir by dir"
"tmux:Show tmux keybindings"
"wezterm:Show wezterm keybindings"
) )
case "$1" in CMD="$1"
shift
SECTION="$1"
shift
case "$CMD" in
path) path)
# shellcheck disable=2001 # shellcheck disable=2001
for i in $(echo "$PATH" | sed 's/:/ /g'); do echo "$i"; done for i in $(echo "$PATH" | sed 's/:/ /g'); do echo "$i"; done
;; ;;
aliases)
case "$SECTION" in
"zsh")
zsh -ixc : 2>&1 | grep -E '> alias' | sed "s|$HOME|~|" | grep -v "(eval)"
;;
"bash")
bash -ixc : 2>&1 | grep -E '> alias' | sed "s|$HOME|~|" | grep -v "(eval)"
;;
*)
echo "$SCRIPT helpers aliases <shell> (bash, zsh)"
;;
esac
;;
"colors")
for i in {0..255}; do echo -en "\e[38;5;${i}m${i} "; done
;;
"env")
env | sort
;;
"functions")
declare -F
;;
"nvim")
cat "$DOTFILES/docs/nvim-keybindings.md"
;;
"tmux")
cat "$DOTFILES/docs/tmux-keybindings.md"
;;
"wezterm")
cat "$DOTFILES/docs/wezterm-keybindings.md"
;;
*) menu_usage "$USAGE_PREFIX" "${MENU[@]}" ;; *) menu_usage "$USAGE_PREFIX" "${MENU[@]}" ;;
esac esac
} }
@@ -524,9 +612,16 @@ section_tests()
MENU=( MENU=(
"msg:List all log functions from shared.sh" "msg:List all log functions from shared.sh"
"params:List all parameters"
) )
case "$1" in case "$1" in
params)
echo "All parameters:"
for i in "$@"; do
echo " $i"
done
;;
msg) msg)
msg "msg" msg "msg"
msg_done "msg_done" msg_done "msg_done"
@@ -555,6 +650,8 @@ usage()
echo "" echo ""
section_install section_install
echo "" echo ""
section_asdf
echo ""
section_brew section_brew
echo "" echo ""
section_check section_check
@@ -566,14 +663,22 @@ usage()
section_helpers section_helpers
} }
# The main loop. first keyword after $0 triggers section, or help. main()
case "$1" in {
install) section_install "$2" ;; SECTION="$1"
brew) section_brew "$2" ;; shift
check) section_check "$2" ;; # The main loop. The first keyword after $0 triggers section, or help.
dotfiles) section_dotfiles "$2" ;; case "$SECTION" in
helpers) section_helpers "$2" ;; install) section_install "$@" ;;
docs) section_docs "$2" ;; asdf) section_asdf "$@" ;;
tests) section_tests "$2" ;; brew) section_brew "$@" ;;
*) usage && exit 0 ;; check) section_check "$@" ;;
esac dotfiles) section_dotfiles "$@" ;;
helpers) section_helpers "$@" ;;
docs) section_docs "$@" ;;
tests) section_tests "$@" ;;
*) usage && exit 0 ;;
esac
}
main "$@"