개발환경 설정 가이드 (+spaceship prompt 이용)

설탕찍은사과·2023년 11월 26일
0
post-thumbnail

개발환경설정이 너무 귀찮지만. 한번 정리해두면 이후에 (포맷 등) 을 하게 되면 바로 세팅이 되니. 정리 해둡니다.

spaceship ?

# brew를 이용하여 설치
brew install spaceship
# spaceship 설정을 zshrc 등록 

echo "source $(brew --prefix)/opt/spaceship/spaceship.zsh" >>! ~/.zshrc
# spaceship.zsh 설정 파일 추가
touch ~/.config/spaceship.zsh

spaceship plugin 추가

플러그인은 spaceship official site를 참고 하시면 됩니다.

spaceship add git
spaceship add aws
spaceship add kubectl
spaceship add terraform
spaceship add docker_context

~/.zshrc 설정 정보

현재까지 설정했던 ~/.zshrc

  • 기존 설정은 모두 지우고 재설정 했습니다.
  • 물론 이전 파일은 백업 해둬야 겠죠?
export ZSH=~/.oh-my-zsh

# theme
ZSH_THEME="ys"

# plugin
plugins=(git
  zsh-completions
  zsh-history-substring-search
  zsh-syntax-highlighting
  zsh-autosuggestions
  autojump
  kubectl
  kubectx)

# source
source $ZSH/oh-my-zsh.sh

# jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"

# terraform
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/local/bin/terraform terraform
# tfenv
export TFENV_VERSION=$(tfenv --version)
export TF_VERSION=$(terraform --version)
#complete -o nospace -C /opt/homebrew/Cellar/tfenv/$TFENV_VERSION/versions/$TF_VERSION/terraform terraf

tfv(){
  terraform validate -var-file=vars/$(terraform workspace show).tfvars
}

tfp(){
  terraform plan -var-file=vars/$(terraform workspace show).tfvars
}

tfa(){
  terraform apply -var-file=vars/$(terraform workspace show).tfvars
}

tfc(){
  terraform console -var-file=vars/$(terraform workspace show).tfvars
}

# ruby init
[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

# kubectl auto completion
source <(kubectl completion zsh)

# kubectl - k alias
alias k=kubectl
compdef __start_kubectl k

# kube_ps1
source "$(brew --prefix)/opt/kube-ps1/share/kube-ps1.sh"
PS1='$(kube_ps1)'$PS1

# vi to vim
#alias vi=vim

# alias to lsd
alias ls='lsd'
alias ll='ls -alhF'

# Terrafrom Alias
alias tf="terraform"
alias tfw="terraform workspace"

# cat to batcat
alias cat="bat --plain"

alias cls=clear

# pyenv setting
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

# pyenv-virtualenv setting
eval "$(pyenv virtualenv-init -)"

# Setting prefix and suffix for docker_context section
SPACESHIP_DOCKER_CONTEXT_PREFIX="on "
SPACESHIP_DOCKER_CONTEXT_SUFFIX="$SPACESHIP_PROMPT_DEFAULT_SUFFIX"

SPACESHIP_KUBECTL_CONTEXT_COLOR_GROUPS=(
  # red if namespace is "kube-system"
  red    '\(kube-system)$'

  # else, green if "dev-01" is anywhere in the context or namespace
  green  dev-01

  # else, red if context name ends with ".k8s.local" _and_ namespace is "system"
  red    '\.k8s\.local \(system)$'

  # else, yellow if the entire content is "test-" followed by digits, and no namespace is displayed
  yellow '^test-[0-9]+$'
)
SPACESHIP_KUBECTL_SHOW=true
SPACESHIP_AWS_SHOW=true
SPACESHIP_DOCKER_COMPOSE_SHOW=true
SPACESHIP_GIT_STATUS_SHOW=true
source /opt/homebrew/opt/spaceship/spaceship.zsh

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

. /opt/homebrew/opt/asdf/libexec/asdf.sh

위의 내용에 대해 설명

  • kubernetes namespace 가 kube-system 일 경우 red
  • kubernetes namespace 가 dev-01 일 경우 geen
  • kubernetes namespace 가 test- 일 경우 yellow

Reference

profile
귀찮아하지말고 계속 정리하고 공부하자

0개의 댓글