mirror of
https://github.com/mr0xb/dotfiles.git
synced 2026-08-28 11:54:57 -04:00
updates
This commit is contained in:
parent
c4ff3550e4
commit
807b7a4504
18 changed files with 567 additions and 0 deletions
22
.claude/commands/obsidian-load.md
Normal file
22
.claude/commands/obsidian-load.md
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
Load context from Obsidian notes in the `Claude/` directory into the current conversation.
|
||||||
|
|
||||||
|
## Behavior
|
||||||
|
|
||||||
|
1. Derive the project name from the current working directory (use the repo or app folder name).
|
||||||
|
2. List files in `Claude/<project-name>/` using `mcp__obsidian__list_vault_files`.
|
||||||
|
3. If `$ARGUMENTS` is provided, treat it as a search query and use `mcp__obsidian__search_vault_smart` to find relevant notes across the entire `Claude/` directory instead of listing by project.
|
||||||
|
4. Read the most relevant notes:
|
||||||
|
- Without args: read the 3 most recent notes for the current project (by filename date prefix).
|
||||||
|
- With args: read the top 3 search results.
|
||||||
|
- Use `mcp__obsidian__get_vault_file` to fetch each note's content.
|
||||||
|
5. Synthesize what you loaded into a brief summary for the user, covering:
|
||||||
|
- What sessions were found and when they occurred
|
||||||
|
- Key decisions or context that is now loaded
|
||||||
|
- Any open questions or next steps from prior sessions that are still relevant
|
||||||
|
6. Explicitly tell the user: "I've loaded this context and will use it going forward in this conversation."
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- If no notes exist for the current project yet, say so and suggest running `/obsidian-save` at the end of a session.
|
||||||
|
- Do not dump raw note content at the user — synthesize and summarize it.
|
||||||
|
- If notes contain contradictory information, flag it and ask which is current.
|
||||||
64
.claude/commands/obsidian-save.md
Normal file
64
.claude/commands/obsidian-save.md
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
Save current conversation context to an Obsidian note under the `Claude/` directory.
|
||||||
|
|
||||||
|
## What to save
|
||||||
|
|
||||||
|
Capture all of the following that are relevant to the current conversation:
|
||||||
|
|
||||||
|
- **Conversation summary**: What the user is trying to accomplish and why
|
||||||
|
- **Project context**: Relevant architecture, design decisions, or constraints discovered
|
||||||
|
- **Task state**: What has been completed, what is in progress, what is blocked or pending
|
||||||
|
- **Key decisions**: Any choices made and the reasoning behind them
|
||||||
|
- **Open questions**: Unresolved questions or things to revisit
|
||||||
|
- **Next steps**: Concrete actions that should follow from this session
|
||||||
|
|
||||||
|
## File location
|
||||||
|
|
||||||
|
Derive the project name from the current working directory (use the repo or app folder name). Save to:
|
||||||
|
|
||||||
|
```
|
||||||
|
Claude/<project-name>/<YYYY-MM-DD>-<short-slug>.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Use today's date and a short 2-4 word slug describing the session topic (e.g. `2026-04-29-ruth-plugin-setup.md`).
|
||||||
|
|
||||||
|
If `$ARGUMENTS` is provided, use it as the slug instead of generating one.
|
||||||
|
|
||||||
|
## Note format
|
||||||
|
|
||||||
|
Use this structure:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
date: <YYYY-MM-DD>
|
||||||
|
project: <project-name>
|
||||||
|
tags: [claude-context]
|
||||||
|
---
|
||||||
|
|
||||||
|
# <Session Title>
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
<1-3 sentence overview of what this session was about>
|
||||||
|
|
||||||
|
## Context
|
||||||
|
<Relevant project background, architecture notes, constraints>
|
||||||
|
|
||||||
|
## Decisions
|
||||||
|
<Decisions made and rationale>
|
||||||
|
|
||||||
|
## Task State
|
||||||
|
<What was completed, in progress, or blocked>
|
||||||
|
|
||||||
|
## Open Questions
|
||||||
|
<Anything unresolved>
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
<Concrete follow-up actions>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
1. Determine the project name from the working directory.
|
||||||
|
2. Determine today's date.
|
||||||
|
3. Draft the note content based on the current conversation.
|
||||||
|
4. Use `mcp__obsidian__create_vault_file` to write the note to the vault.
|
||||||
|
5. Confirm to the user where the note was saved.
|
||||||
14
.claude/policy-limits.json
Normal file
14
.claude/policy-limits.json
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"restrictions": {
|
||||||
|
"allow_remote_control": {
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
"allow_quick_web_setup": {
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
"enforce_web_search_mcp_isolation": {
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compliance_taints": []
|
||||||
|
}
|
||||||
128
.claude/settings.json
Normal file
128
.claude/settings.json
Normal file
|
|
@ -0,0 +1,128 @@
|
||||||
|
{
|
||||||
|
"env": {
|
||||||
|
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "100000"
|
||||||
|
},
|
||||||
|
"hooks": {
|
||||||
|
"Notification": [
|
||||||
|
{
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "afplay ~/.claude/sounds/mario/pause.wav 2>/dev/null || true",
|
||||||
|
"async": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "osascript ~/bin/confetti.scpt",
|
||||||
|
"async": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PostToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": "Write|Edit|MultiEdit",
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "/usr/local/bin/aicodemetricsd hook claude --hook-input stdin",
|
||||||
|
"timeout": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PostToolUseFailure": [
|
||||||
|
{
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "afplay ~/.claude/sounds/mario/tool-failure/bowser-fire.wav 2>/dev/null || true",
|
||||||
|
"async": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PreCompact": [
|
||||||
|
{
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "/usr/local/bin/aicodemetricsd hook claude --hook-input stdin",
|
||||||
|
"timeout": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PreToolUse": [
|
||||||
|
{
|
||||||
|
"matcher": "Write|Edit|MultiEdit",
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "/usr/local/bin/aicodemetricsd hook claude --hook-input stdin",
|
||||||
|
"timeout": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"SessionEnd": [
|
||||||
|
{
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "/usr/local/bin/aicodemetricsd hook claude --hook-input stdin",
|
||||||
|
"timeout": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Stop": [
|
||||||
|
{
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "afplay ~/.claude/sounds/mario/stop/stomp.wav 2>/dev/null || true",
|
||||||
|
"async": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"UserPromptSubmit": [
|
||||||
|
{
|
||||||
|
"hooks": [
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "afplay ~/.claude/sounds/mario/prompt-submit/coin.wav 2>/dev/null || true",
|
||||||
|
"async": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "command",
|
||||||
|
"command": "osascript ~/bin/confetti.scpt",
|
||||||
|
"async": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"enabledPlugins": {
|
||||||
|
"mind@memvid": true,
|
||||||
|
"superpowers@claude-plugins-official": true
|
||||||
|
},
|
||||||
|
"extraKnownMarketplaces": {
|
||||||
|
"endless-toil": {
|
||||||
|
"source": {
|
||||||
|
"source": "directory",
|
||||||
|
"path": "/Users/steve.briggs/.endless-toil"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"memvid": {
|
||||||
|
"source": {
|
||||||
|
"source": "directory",
|
||||||
|
"path": "/Users/steve.briggs/claude-brain"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"effortLevel": "xhigh",
|
||||||
|
"theme": "custom:challengerdeep",
|
||||||
|
"model": "sonnet"
|
||||||
|
}
|
||||||
68
.claude/themes/challengerdeep.json
Normal file
68
.claude/themes/challengerdeep.json
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
"name": "Challenger Deep",
|
||||||
|
"base": "dark",
|
||||||
|
"overrides": {
|
||||||
|
"claude": "#906cff",
|
||||||
|
"claudeShimmer": "#c991e1",
|
||||||
|
"text": "#cbe3e7",
|
||||||
|
"inverseText": "#100e23",
|
||||||
|
"inactive": "#a6b3cc",
|
||||||
|
"inactiveShimmer":"#cbe3e7",
|
||||||
|
"subtle": "#5a5475",
|
||||||
|
"suggestion": "#c991e1",
|
||||||
|
"permission": "#ffe9aa",
|
||||||
|
"permissionShimmer":"#ffb378",
|
||||||
|
"remember": "#63f2f1",
|
||||||
|
|
||||||
|
"success": "#62d196",
|
||||||
|
"error": "#ff5458",
|
||||||
|
"warning": "#ffb378",
|
||||||
|
"warningShimmer": "#ffe9aa",
|
||||||
|
"merged": "#906cff",
|
||||||
|
|
||||||
|
"promptBorder": "#906cff",
|
||||||
|
"promptBorderShimmer": "#c991e1",
|
||||||
|
"planMode": "#63f2f1",
|
||||||
|
"autoAccept": "#62d196",
|
||||||
|
"bashBorder": "#ffb378",
|
||||||
|
"ide": "#91ddff",
|
||||||
|
"fastMode": "#c991e1",
|
||||||
|
"fastModeShimmer":"#aaffe4",
|
||||||
|
|
||||||
|
"diffAdded": "#1f3a2a",
|
||||||
|
"diffRemoved": "#3a1f23",
|
||||||
|
"diffAddedDimmed": "#1a2e22",
|
||||||
|
"diffRemovedDimmed": "#2e1a1d",
|
||||||
|
"diffAddedWord": "#2c5a40",
|
||||||
|
"diffRemovedWord": "#5a2c30",
|
||||||
|
|
||||||
|
"userMessageBackground": "#2a2640",
|
||||||
|
"userMessageBackgroundHover": "#3b3470",
|
||||||
|
"messageActionsBackground": "#3b3470",
|
||||||
|
"bashMessageBackgroundColor": "#2c281a",
|
||||||
|
"memoryBackgroundColor": "#1f2c3a",
|
||||||
|
"selectionBg": "#3b3470",
|
||||||
|
|
||||||
|
"rate_limit_fill": "#906cff",
|
||||||
|
"rate_limit_empty": "#3b3470",
|
||||||
|
"briefLabelYou": "#ffe9aa",
|
||||||
|
"briefLabelClaude": "#906cff",
|
||||||
|
|
||||||
|
"red_FOR_SUBAGENTS_ONLY": "#ff5458",
|
||||||
|
"blue_FOR_SUBAGENTS_ONLY": "#65b2ff",
|
||||||
|
"green_FOR_SUBAGENTS_ONLY": "#62d196",
|
||||||
|
"yellow_FOR_SUBAGENTS_ONLY": "#ffe9aa",
|
||||||
|
"purple_FOR_SUBAGENTS_ONLY": "#906cff",
|
||||||
|
"orange_FOR_SUBAGENTS_ONLY": "#ffb378",
|
||||||
|
"pink_FOR_SUBAGENTS_ONLY": "#c991e1",
|
||||||
|
"cyan_FOR_SUBAGENTS_ONLY": "#63f2f1",
|
||||||
|
|
||||||
|
"rainbow_red": "#ff5458",
|
||||||
|
"rainbow_orange": "#ffb378",
|
||||||
|
"rainbow_yellow": "#ffe9aa",
|
||||||
|
"rainbow_green": "#62d196",
|
||||||
|
"rainbow_blue": "#65b2ff",
|
||||||
|
"rainbow_indigo": "#906cff",
|
||||||
|
"rainbow_violet": "#c991e1"
|
||||||
|
}
|
||||||
|
}
|
||||||
3
.local/bin/confetti.scpt
Executable file
3
.local/bin/confetti.scpt
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
tell application "System Events"
|
||||||
|
keystroke "c" using {option down, command down}
|
||||||
|
end tell
|
||||||
3
.local/bin/goland
Executable file
3
.local/bin/goland
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
open -na "GoLand.app" --args "$@"
|
||||||
9
.mise.toml
Normal file
9
.mise.toml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[tools]
|
||||||
|
helm = "3.17.1"
|
||||||
|
kubecolor = "latest"
|
||||||
|
terraform = "1.3.10"
|
||||||
|
terraform-docs = "0.18.0"
|
||||||
|
cilium-cli = "0.16.16"
|
||||||
|
go = "1.23"
|
||||||
|
vault = "1.18.3"
|
||||||
|
awscli = "2.25.13"
|
||||||
1
.oh-my-zsh
Submodule
1
.oh-my-zsh
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit e64912e0c1eaa32181c3b5e5e4bf8042ecd0e8a7
|
||||||
3
.ssh/config
Normal file
3
.ssh/config
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
Host github.com
|
||||||
|
AddKeysToAgent yes
|
||||||
|
IdentityFile ~/.ssh/id_ed25519
|
||||||
21
.zshrc.d/_cht
Normal file
21
.zshrc.d/_cht
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
#compdef cht.sh
|
||||||
|
|
||||||
|
__CHTSH_LANGS=($(curl -s cheat.sh/:list))
|
||||||
|
_arguments -C \
|
||||||
|
'--help[show this help message and exit]: :->noargs' \
|
||||||
|
'--shell[enter shell repl]: :->noargs' \
|
||||||
|
'1:Cheat Sheet:->lang' \
|
||||||
|
'*::: :->noargs' && return 0
|
||||||
|
|
||||||
|
if [[ CURRENT -ge 1 ]]; then
|
||||||
|
case $state in
|
||||||
|
noargs)
|
||||||
|
_message "nothing to complete";;
|
||||||
|
lang)
|
||||||
|
compadd -X "Cheat Sheets" ${__CHTSH_LANGS[@]};;
|
||||||
|
*)
|
||||||
|
_message "Unknown state, error in autocomplete";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return
|
||||||
|
fi
|
||||||
177
.zshrc.d/aliases.zsh
Normal file
177
.zshrc.d/aliases.zsh
Normal file
|
|
@ -0,0 +1,177 @@
|
||||||
|
#===================================
|
||||||
|
# DIRECTORY MANAGEMENT
|
||||||
|
#===================================
|
||||||
|
alias ..='cd ..'
|
||||||
|
alias .1='cd ..'
|
||||||
|
alias .2='cd ../../'
|
||||||
|
alias .3='cd ../../../'
|
||||||
|
alias .4='../../../../'
|
||||||
|
alias .5='cd ../../../../../'
|
||||||
|
alias APPS='cd ${HOME}/GIT_REPOS/APPLICATION-DEPLOYMENTS'
|
||||||
|
alias INFRA='cd ${HOME}/GIT_REPOS/CLOUD-INFRASTRUCTURE-TERRAFORM'
|
||||||
|
alias EKS-BASE='cd ${HOME}/GIT_REPOS/EKS-BASE-DEPLOY'
|
||||||
|
alias K8S-BASE='cd ${HOME}/GIT_REPOS/K8S-BASE-DEPLOY'
|
||||||
|
alias config='/usr/bin/git --git-dir=$HOME/.cfg/.git/ --work-tree=$HOME'
|
||||||
|
|
||||||
|
|
||||||
|
#===================================
|
||||||
|
# COMMAND MODIFICATIONS & REMAPS
|
||||||
|
#===================================
|
||||||
|
alias l='lsd'
|
||||||
|
alias la='lsd -aF'
|
||||||
|
alias vi='nvim'
|
||||||
|
alias dog='cat'
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias Grep='grep'
|
||||||
|
alias Gerp='grep'
|
||||||
|
alias gerp='grep'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
alias nano='nvim'
|
||||||
|
alias emacs='nvim'
|
||||||
|
alias notepad.exe='nvim'
|
||||||
|
alias diff='colordiff --side-by-side --suppress-common-lines'
|
||||||
|
alias header='curl -I'
|
||||||
|
alias headerc='curl -I --compress'
|
||||||
|
|
||||||
|
#===================================
|
||||||
|
# AWS & INFRA-TOOLS
|
||||||
|
#===================================
|
||||||
|
#AWS
|
||||||
|
alias ac='aws-cred'
|
||||||
|
alias av='aws-vault'
|
||||||
|
alias tg='terragrunt'
|
||||||
|
|
||||||
|
#Terraform / Terragrun
|
||||||
|
alias tgp="terragrunt plan"
|
||||||
|
alias tgps="terragrunt plan --terragrunt-source-update"
|
||||||
|
alias tglo="terragrunt providers lock -platform=linux_arm64 -platform=linux_amd64 -platform=darwin_amd64 -platform=darwin_arm6"
|
||||||
|
alias tga="terragrunt apply"
|
||||||
|
alias tgaA="terragrunt apply -auto-approve"
|
||||||
|
alias tgas="terragrunt apply --terragrunt-source-update"
|
||||||
|
alias tgasA="terragrunt apply --terragrunt-source-update -auto-approve"
|
||||||
|
alias tgi="terragrunt init"
|
||||||
|
alias tgis="terragrunt init --terragrunt-source-update"
|
||||||
|
alias tgo="terragrunt output"
|
||||||
|
|
||||||
|
#Kuberenetes
|
||||||
|
alias kx='kubectx'
|
||||||
|
alias kn='kubens'
|
||||||
|
alias ku='kustomize'
|
||||||
|
alias kub='kustomize build --enable-alpha-plugins --load-restrictor LoadRestrictionsNone'
|
||||||
|
alias k='kubectl'
|
||||||
|
alias kg='kubectl get'
|
||||||
|
alias kd='kubectl describe'
|
||||||
|
alias kge='kubectl get events'
|
||||||
|
alias kgp='kubectl get pods'
|
||||||
|
alias kgprca="kubectl get pods --all-namespaces --sort-by='.status.containerStatuses[0].restartCount'"
|
||||||
|
alias kgprc="kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'"
|
||||||
|
#alias kgn='kubectl get nodes'
|
||||||
|
alias kgn='kubectl get nodes --sort-by=.metadata.creationTimestamp'
|
||||||
|
alias kgic='kubectl get ingressclass'
|
||||||
|
alias kdic='kubectl describe ingressclass'
|
||||||
|
alias kgpv='kubectl get pv'
|
||||||
|
alias kdpv='kubectl describe pv'
|
||||||
|
alias klt='kubectl logs -f'
|
||||||
|
alias kbug='kubectl run -i --tty --rm debug --image=ubuntu --restart=Never -- /bin/bash'
|
||||||
|
alias kgsec='kubectl get secret'
|
||||||
|
alias kgj='kubectl get job'
|
||||||
|
alias fqdn="kubectl get ingress -o json | jq '.items[] | .metadata.namespace + \": \" + .metadata.annotations.\"external-dns.alpha.kubernetes.io/hostname\"'"
|
||||||
|
alias fqdna="kubectl get ingress --all-namespaces -o json | jq '.items[] | .metadata.namespace + \": \" + .metadata.annotations.\"external-dns.alpha.kubernetes.io/hostname\"'"
|
||||||
|
#Kubernetes + Teleport
|
||||||
|
alias tkl='tsh kube ls'
|
||||||
|
kutil () {
|
||||||
|
for host in $(kubectl get nodes --no-headers | cut -d' ' -f1)
|
||||||
|
do
|
||||||
|
echo "$host - $(kubectl get nodes -o jsonpath='{.metadata.labels.topology\.kubernetes\.io/zone}' $host)"
|
||||||
|
kubectl describe node "$host" | grep --color Allocated -A 5 | grep --color -ve Event -ve Allocated -ve percent -ve --
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
}
|
||||||
|
#===================================
|
||||||
|
# USEFUL / CONVIENENCE
|
||||||
|
#===================================
|
||||||
|
alias untar='tar -zxvf'
|
||||||
|
alias lstar='tar -tvf'
|
||||||
|
alias perms='stat -f "%A %Sp -> owner=%SHp group=%SMp other=%SLp"'
|
||||||
|
#alias pydocs="elinks https://docs.python.org/$(python --version | awk '{print $2}' | sed 's/\.[0-9]*$//')/py-modindex.html"
|
||||||
|
alias pydocs="open https://docs.python.org/$(python3 --version | awk '{print $2}' | sed 's/\.[0-9]*$//')/py-modindex.html"
|
||||||
|
alias hr='printf $(printf "\e[$(shuf -i 91-97 -n 1);1m%%%ds\e[0m\n" $(tput cols)) | tr " " ='
|
||||||
|
alias iac='cd $HOME/projects/IAC'
|
||||||
|
|
||||||
|
|
||||||
|
#===================================
|
||||||
|
# DO THE SAFETY DANCE
|
||||||
|
#===================================
|
||||||
|
alias cp='cp -i'
|
||||||
|
alias rm='rm -i'
|
||||||
|
alias ln='ln -i'
|
||||||
|
alias mv='mv -i'
|
||||||
|
|
||||||
|
#===================================
|
||||||
|
# MAC
|
||||||
|
#===================================
|
||||||
|
alias fudns='sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder'
|
||||||
|
|
||||||
|
#===================================
|
||||||
|
# MISC
|
||||||
|
#===================================
|
||||||
|
if [ $UID -ne 0 ]; then
|
||||||
|
alias reboot='sudo reboot'
|
||||||
|
if [[ $OSTYPE != 'darwin'* ]]; then
|
||||||
|
alias upgradeall='sudo apt-get update && sudo apt-get upgrade'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#===================================
|
||||||
|
# FUNCS
|
||||||
|
#===================================
|
||||||
|
#exa deprecated, replacing with lsd (github.com/lsd-rs/lsd)
|
||||||
|
#alias ls ='lsd'
|
||||||
|
#i use exa and have ls muscle memory, current version of exa does not take -t and will error out#this is a fair work around; https://github.com/ogham/exa/issues/519#issuecomment-560608534
|
||||||
|
#function ls {
|
||||||
|
# if [ "$1" = "-ltr" ]; then
|
||||||
|
# exa -lsnew "${@:2}" -l -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "-lrt" ]; then
|
||||||
|
# exa -lsnew "${@:2}" -l -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "-latr" ]; then
|
||||||
|
# exa -lsnew "${@:2}" -la -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "-lahtr" ]; then
|
||||||
|
# exa -lsnew "${@:2}" -lah -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "-alhtr" ]; then
|
||||||
|
# exa -lsnew "${@:2}" -lah -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "latr" ]; then
|
||||||
|
# exa -lsnew "${@:3}" -lah -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "altr" ]; then
|
||||||
|
# exa -lsnew "${@:3}" -lah -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "lahtr" ]; then
|
||||||
|
# exa -lsnew "${@:3}" -lah -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "-altr" ]; then
|
||||||
|
# exa -lsnew "${@:2}" -lah -F --color=auto --icons
|
||||||
|
# elif [ "$1" = "a-ltr" ]; then
|
||||||
|
# exa -lsnew "${@:2}" -lah -F --color=auto --icons
|
||||||
|
# else
|
||||||
|
# exa "$@" -a
|
||||||
|
# fi
|
||||||
|
#}
|
||||||
|
|
||||||
|
function urlencode {
|
||||||
|
python -c "import sys; from urllib.parse import quote_plus; print(quote_plus(sys.stdin.read()))"
|
||||||
|
}
|
||||||
|
|
||||||
|
function urldecode {
|
||||||
|
python -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()), end='')"
|
||||||
|
}
|
||||||
|
|
||||||
|
function tfdocs {
|
||||||
|
open "https://registry.terraform.io/search/providers?q=`echo "${@}" | urlencode`"
|
||||||
|
}
|
||||||
|
|
||||||
|
function google {
|
||||||
|
open "https://www.google.com/search?q=`echo "${@}" | urlencode`"
|
||||||
|
}
|
||||||
|
|
||||||
|
function hred () {
|
||||||
|
[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"
|
||||||
|
cat $input | grep --color -E -v '^\s*$|^\s*#.*$'
|
||||||
|
}
|
||||||
28
.zshrc.d/fr.zsh
Normal file
28
.zshrc.d/fr.zsh
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
fr () {
|
||||||
|
FIND="$1"
|
||||||
|
REPLACE="$2"
|
||||||
|
FILTER="$3"
|
||||||
|
if [ -z "${FIND}" ] || [ -z "${REPLACE}" ]
|
||||||
|
then
|
||||||
|
echo "ERR: must include two parameters for find and replace" >&2
|
||||||
|
fr_usage
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if command -v rg 2>&1 > /dev/null
|
||||||
|
then
|
||||||
|
if [ -z "${FILTER}" ]
|
||||||
|
then
|
||||||
|
rg --hidden --glob '!.git/' -l "$FIND" | xargs sed -i "s/${FIND}/${REPLACE}/g"
|
||||||
|
else
|
||||||
|
rg --hidden --glob '!.git/' -l "$FIND" | rg --hidden --glob '!.git/' -i "$FILTER" | xargs sed -i "s/${FIND}/${REPLACE}/g"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ -z "${FILTER}" ]
|
||||||
|
then
|
||||||
|
grep --color -l "$FIND" | xargs sed -i "s/${FIND}/${REPLACE}/g"
|
||||||
|
else
|
||||||
|
grep --color -l "$FIND" | grep --color -i "$FILTER" | xargs sed -i "s/${FIND}/${REPLACE}/g"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
6
.zshrc.d/gopath.zsh
Normal file
6
.zshrc.d/gopath.zsh
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# GoPath stuff
|
||||||
|
export PATH="$PATH:${HOME}/.bin"
|
||||||
|
export GOPATH="${HOME}/go"
|
||||||
|
export GOBIN="${HOME}/go/bin/"
|
||||||
|
export PATH=$PATH:$GOROOT/bin:$GOBIN
|
||||||
|
export HISTCONTROL=ignorespace:ignoredups
|
||||||
5
.zshrc.d/hred.zsh
Normal file
5
.zshrc.d/hred.zsh
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
hred() {
|
||||||
|
[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"
|
||||||
|
cat $input | grep -E -v '^\s*$|^\s*#.*$'
|
||||||
|
}
|
||||||
3
.zshrc.d/teleport.zsh
Normal file
3
.zshrc.d/teleport.zsh
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
export TELEPORT_PROXY=transporter.ic-ops.com:443
|
||||||
|
export TELEPORT_CLUSTER=transporter.ic-ops.com
|
||||||
|
export TELEPORT_USER=steve.briggs@immuta.com
|
||||||
1
.zshrc.d/vscodepath.ksh
Normal file
1
.zshrc.d/vscodepath.ksh
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export PATH=$PATH:/usr/local/bin/code
|
||||||
11
.zshrc.d/work-immuta.zsh
Normal file
11
.zshrc.d/work-immuta.zsh
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
export VAULT_ADDR=https://vault.immuta.io:8200
|
||||||
|
#export VAULT_ADDR=https://vault.infrastructure.immuta.io:8200
|
||||||
|
export VAULT_TOKEN=$(cat ~/.vault-token)
|
||||||
|
|
||||||
|
export AWS_VAULT_BACKEND=keychain
|
||||||
|
export AWS_VAULT_KEYCHAIN_NAME="aws-vault"
|
||||||
|
export AWS_LOGIN_BROWSER="firefox"
|
||||||
|
|
||||||
|
#export KUBECONFIG=/Users/steve.briggs/.kube/config:/Users/steve.briggs/.kube/minikube
|
||||||
|
export KUBECONFIG="${HOME}/.kube/teleport-kubeconfig:${HOME}/.kube/config:${HOME}/.kube/minikube"
|
||||||
|
export PATH=$PATH:/private/var/folders/ky/m6p32md91_n2q6z94fdn8fsw0000gq/T/AppTranslocation/F252CD76-5A71-4D7F-8826-12175DB43E32/d/Visual\ Studio\ Code.app/Contents/Resources/app/bin
|
||||||
Loading…
Reference in a new issue