Skip to content

Instantly share code, notes, and snippets.

@protosam
Last active July 1, 2023 19:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save protosam/74ac72cbbf27c51296a87aa55acab71d to your computer and use it in GitHub Desktop.
Save protosam/74ac72cbbf27c51296a87aa55acab71d to your computer and use it in GitHub Desktop.
$ curl -o ~/.shrc https://gist.githubusercontent.com/protosam/74ac72cbbf27c51296a87aa55acab71d/raw/.shrc.sh
$ ln -s ~/.shrc ~/.bashrc
$ ln -s ~/.shrc ~/.zshrc
$ curl -o ~/.profiles.d/kubernetes https://gist.githubusercontent.com/protosam/74ac72cbbf27c51296a87aa55acab71d/raw/profiles.d.kubernetes.sh
$ brew update && brew install openssl
$ brew link --force openssl
$ brew install dsq yq jq helm kubectl krew
$ kubectl krew install node-shell bash bash-completion
$ echo /usr/local/bin/bash | sudo tee -a /etc/shells
$ brew reinstall kubectl
$ echo .DS_Store >> ~/.gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global
$ defaults write com.apple.dock autohide -bool true && killall Dock
$ defaults write com.apple.dock autohide-delay -float 1000 && killall Dock
$ defaults write com.apple.dock no-bouncing -bool TRUE && killall Dock
$ defaults write com.apple.dock "mru-spaces" -bool "false" && killall Dock
$ defaults write com.apple.dock wvous-tl-corner -int 0 && killall Dock
$ defaults write com.apple.dock wvous-tr-corner -int 0 && killall Dock
$ defaults write com.apple.dock wvous-bl-corner -int 0 && killall Dock
$ defaults write com.apple.dock wvous-br-corner -int 0 && killall Dock
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true && killall Finder
$ xcode-select --install
$ sudo rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install
$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
$ cd /Applications
$ touch Xcode.app
# filename: ~/.shrc
# prep:
# ln -s ~/.shrc ~/.bashrc
# ln -s ~/.shrc ~/.zshrc
# .zshrc specific settings
if [ ! -z "${ZSH_VERSION}" ]; then
autoload -U select-word-style
select-word-style bash
setopt noautomenu
setopt nomenucomplete
setopt interactive_comments
eval "$(/opt/homebrew/bin/brew shellenv)"
# enable vsc info for szsh
setopt prompt_subst
autoload -Uz vcs_info
zstyle ':vcs_info:*' actionformats \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
zstyle ':vcs_info:*' formats \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
zstyle ':vcs_info:*' enable git cvs svn
# or use pre_cmd, see man zshcontrib
vcs_info_wrapper() {
vcs_info
if [ -n "$vcs_info_msg_0_" ]; then
echo "%{$fg[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del"
fi
}
# ref: https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html
PS1=$'%K{gray}%F{white}[%n@%m %~]%f%k $(vcs_info_wrapper) \n%# '
fi
# Thanks stackoverflow friend: https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
COLOR_RESET='\033[0m' # Text Reset
COLOR_GREEN='\033[0;32m' # Green
COLOR_PURPLE='\033[0;35m' # Purple
COLOR_WHITE='\033[0;37m' # White
# .bashrc specific settings
if [ ! -z "${BASH_VERSION}" ]; then
#PS1='\h:\W \u\$ '
parse_git_branch() {
BRANCH=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
[ -z "${BRANCH}" ] && return
echo -ne "${COLOR_PURPLE}(${COLOR_WHITE}git${COLOR_PURPLE})${COLOR_WHITE}-${COLOR_PURPLE}[${COLOR_GREEN}"
echo -n "${BRANCH}"
echo -ne "${COLOR_PURPLE}]${COLOR_RESET}"
# "\[\e[91m\]${BRANCH}\[\e[00m\] \001helloworld "
}
PS1="${COLOR_WHITE}[\u@\h \w] \$(parse_git_branch)\n$ ${COLOR_RESET}"
fi
# ensure ssh directory is setup with correct perms
[ ! -d ~/.ssh ] && mkdir ~/.ssh && chmod u=rwx,g=,o= ~/.ssh
# make a private bin dir if it doesn't exist
[ ! -d ~/bin ] && mkdir ~/bin
export PATH="${PATH}:${HOME}/bin"
# setup ~/.profiles.d
[ ! -d ~/.profiles.d ] && mkdir ~/.profiles.d && chmod u=rwx,g=,o= ~/.profiles.d
# setup private env file
[ ! -f ~/.profiles.d/private.env ] && touch ~/.profiles.d/private.env && chmod u=rwx,g=,o= ~/.profiles.d/private.env
# load profiles
for profile_file in $(find ~/.profiles.d -not -name "*.disabled" -not -name "*.md" -type f); do
source "${profile_file}";
done
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BackgroundBlur</key>
<real>0.0781941788919856</real>
<key>BackgroundColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGmCwwXHR4lVSRudWxs1Q0ODxAR
EhMUFRZcTlNDb21wb25lbnRzVU5TUkdCXE5TQ29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29s
b3JTcGFjZVYkY2xhc3NPEBIwIDAgMCAwLjgwNDE0MTUyNjhPEBMwIDAgMCAwLjgwNDE0
MTUyNjgAEAGAAoAF0xgRGRobHFVOU0lDQ1lOU1NwYWNlSUSAA4AEEAxPEQIYAAACGGFw
cGwEAAAAbW50clJHQiBYWVogB+YAAQABAAAAAAAAYWNzcEFQUEwAAAAAQVBQTAAAAAAA
AAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBs7P2jjjiFR8NttL1PetoYLwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKZGVzYwAAAPwAAAAwY3BydAAAASwAAABQd3Rw
dAAAAXwAAAAUclhZWgAAAZAAAAAUZ1hZWgAAAaQAAAAUYlhZWgAAAbgAAAAUclRSQwAA
AcwAAAAgY2hhZAAAAewAAAAsYlRSQwAAAcwAAAAgZ1RSQwAAAcwAAAAgbWx1YwAAAAAA
AAABAAAADGVuVVMAAAAUAAAAHABEAGkAcwBwAGwAYQB5ACAAUAAzbWx1YwAAAAAAAAAB
AAAADGVuVVMAAAA0AAAAHABDAG8AcAB5AHIAaQBnAGgAdAAgAEEAcABwAGwAZQAgAEkA
bgBjAC4ALAAgADIAMAAyADJYWVogAAAAAAAA9tUAAQAAAADTLFhZWiAAAAAAAACD3wAA
Pb////+7WFlaIAAAAAAAAEq/AACxNwAACrlYWVogAAAAAAAAKDgAABELAADIuXBhcmEA
AAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeT
AAD9kP//+6L///2jAAAD3AAAwG7SHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXE5TQ29s
b3JTcGFjZaIjJFxOU0NvbG9yU3BhY2VYTlNPYmplY3TSHyAmJ1dOU0NvbG9yoiYkAAgA
EQAaACQAKQAyADcASQBMAFEAUwBaAGAAawB4AH4AiwCgAKcAvADSANQA1gDYAN8A5QDv
APEA8wD1AxEDFgMhAyoDNwM6A0cDUANVA10AAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAA
AAAAAAADYA==
</data>
<key>BackgroundSettingsForInactiveWindows</key>
<false/>
<key>Bell</key>
<false/>
<key>Font</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGkCwwVFlUkbnVsbNQNDg8QERIT
FFZOU1NpemVYTlNmRmxhZ3NWTlNOYW1lViRjbGFzcyNAJgAAAAAAABAQgAKAA15TRk1v
bm8tUmVndWxhctIXGBkaWiRjbGFzc25hbWVYJGNsYXNzZXNWTlNGb250ohkbWE5TT2Jq
ZWN0CBEaJCkyN0lMUVNYXmdud36FjpCSlKOos7zDxgAAAAAAAAEBAAAAAAAAABwAAAAA
AAAAAAAAAAAAAADP
</data>
<key>FontAntialias</key>
<true/>
<key>FontWidthSpacing</key>
<real>1.004032258064516</real>
<key>ProfileCurrentVersion</key>
<real>2.0699999999999998</real>
<key>ShowDimensionsInTitle</key>
<true/>
<key>VisualBellOnlyWhenMuted</key>
<false/>
<key>keyMapBoundKeys</key>
<dict>
<key>#F739</key>
<string>toggleNumLock:</string>
<key>$F702</key>
<string></string>
<key>$F703</key>
<string></string>
<key>$F708</key>
<string>[25~</string>
<key>$F709</key>
<string>[26~</string>
<key>$F70A</key>
<string>[28~</string>
<key>$F70B</key>
<string>[29~</string>
<key>$F70C</key>
<string>[31~</string>
<key>$F70D</key>
<string>[32~</string>
<key>$F70E</key>
<string>[33~</string>
<key>$F70F</key>
<string>[34~</string>
<key>$F728</key>
<string>[3;2~</string>
<key>F704</key>
<string>OP</string>
<key>F705</key>
<string>OQ</string>
<key>F706</key>
<string>OR</string>
<key>F707</key>
<string>OS</string>
<key>F708</key>
<string>[15~</string>
<key>F709</key>
<string>[17~</string>
<key>F70A</key>
<string>[18~</string>
<key>F70B</key>
<string>[19~</string>
<key>F70C</key>
<string>[20~</string>
<key>F70D</key>
<string>[21~</string>
<key>F70E</key>
<string>[23~</string>
<key>F70F</key>
<string>[24~</string>
<key>F710</key>
<string>[25~</string>
<key>F711</key>
<string>[26~</string>
<key>F712</key>
<string>[28~</string>
<key>F713</key>
<string>[29~</string>
<key>F714</key>
<string>[31~</string>
<key>F715</key>
<string>[32~</string>
<key>F716</key>
<string>[33~</string>
<key>F717</key>
<string>[34~</string>
<key>F728</key>
<string>[3~</string>
<key>F729</key>
<string>[1~</string>
<key>^F702</key>
<string></string>
<key>^F703</key>
<string></string>
<key>^F728</key>
<string>[3;5~</string>
<key>~F702</key>
<string>b</string>
<key>~F703</key>
<string>f</string>
<key>~F704</key>
<string>[17~</string>
<key>~F705</key>
<string>[18~</string>
<key>~F706</key>
<string>[19~</string>
<key>~F707</key>
<string>[20~</string>
<key>~F708</key>
<string>[21~</string>
<key>~F709</key>
<string>[23~</string>
<key>~F70A</key>
<string>[24~</string>
<key>~F70B</key>
<string>[25~</string>
<key>~F70C</key>
<string>[26~</string>
<key>~F70D</key>
<string>[28~</string>
<key>~F70E</key>
<string>[29~</string>
<key>~F70F</key>
<string>[31~</string>
<key>~F710</key>
<string>[32~</string>
<key>~F711</key>
<string>[33~</string>
<key>~F712</key>
<string>[34~</string>
<key>~^F728</key>
<string>[3;5~</string>
</dict>
<key>name</key>
<string>Basic-Enhanced</string>
<key>type</key>
<string>Window Settings</string>
<key>useOptionAsMetaKey</key>
<true/>
</dict>
</plist>
# add krew bin dir to path if it exists
[ -d ~/.krew/bin ] && export PATH="${PATH}:${HOME}/.krew/bin"
## Create default kind cluster config if it doesn't exist
[ -f ~/.kind.yml ] || cat <<-'EOF' > ~/.kind.yml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
labels:
topology.kubernetes.io/region: us-local-1
topology.kubernetes.io/zone: us-local-1a
- role: worker
labels:
topology.kubernetes.io/region: us-local-1
topology.kubernetes.io/zone: us-local-1b
- role: worker
labels:
topology.kubernetes.io/region: us-local-1
topology.kubernetes.io/zone: us-local-1c
EOF
## Delete existing kind cluster and create a new one
alias kind-reset='kind delete cluster && kind create cluster --config ~/.kind.yml'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment