Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 채팅방 구현
- sops
- mysql multi-row insert
- 스프링 오어스
- 스프링 소셜 로그인
- spring 채팅방
- 쿠버네티스 #fabric8
- 로또 등수 알고리즘
- 스프링 환경변수 설정
- 시크릿 깃에 올리기
- 로또 등수 코드
- springboot
- oauth 로그인
- jpa dto 매핑
- 시크릿 암호화
- 안드로이드 스튜디오
- 로또 앱 만들기
- jpa bulk insert
- 인증 제외
- hibe
- 중간 테이블 엔티티 최적화
- 스프링 환경변수
- java
- sops age
- sops 암호화
- 어노테이션 인증
- 스프링 시큐리티 없이
- jpa 최적화
- 어노테이션 인증 제외
- android studio
Archives
- Today
- Total
야미의 개발
[개발 생산성 올리기] Zsh 함수들을 자동으로 로드하기 - 매번 로그인 토큰 받기 귀찮을 때 본문
개발하다 보면 자주 쓰는 작은 쉘 함수들을 만들어두고 싶은 경우가 많습니다.
저는 특히 API 토큰을 발급받아 복사하고 설정하는게 너무 귀찮은데, 아시는 분이 좋은 방법을 알려주시더라구요.
~/.zshrc에 간단한 설정만 추가하면, 함수들을 .zsh 파일로 분리해 디렉토리에서 관리하고 Zsh 시작할 때 자동 로드되도록 할 수 있습니다.
1. 함수 로더 만들기
먼저 ~/.zshrc에 다음 함수를 추가합니다.
다음의 명령어로 편집을 합니다.
vi ~/.zshrc
이런 내용 추가!
load_zsh_functions() {
local func_dir="$HOME/.zsh/functions"
# 디렉토리 생성 (없으면 자동 생성)
[[ ! -d "$func_dir" ]] && mkdir -p "$func_dir"
# .zsh 파일이 있으면 전부 로드
if ls "$func_dir"/*.zsh >/dev/null 2>&1; then
for file in "$func_dir"/*.zsh; do
if [[ -r "$file" ]]; then
source "$file"
# echo "Loaded: $(basename "$file")" # 디버그용
fi
done
else
# 파일이 없으면 예시 파일을 하나 만들어줌
cat > "$func_dir/example.zsh" << 'EOF'
# 예시 함수들
function hello() {
echo "Hello from zsh functions!"
}
function current_time() {
date "+%Y-%m-%d %H:%M:%S"
}
EOF
echo "Created example function file: $func_dir/example.zsh"
source "$func_dir/example.zsh"
fi
}
# Zsh 시작할 때 함수 자동 로드
load_zsh_functions
2. 함수 디렉토리 구성
이제 ~/.zsh/functions 안에 원하는 함수를 파일로 나눠서 넣을 수 있습니다.
예를 들어 kohee.zsh라는 파일을 만들고:
# kohee.zsh : 로그인 토큰 발급 후 클립보드에 복사
kohee-token() {
local baseurl="${1:-https://api.dev}"
local email="${2:-test@test.com}"
local password="${3:-test}"
echo "Logging in as $email on $baseurl ..."
local response=$(curl -s -X 'POST' \
"$baseurl/api/v1/auth/login" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d "{
\"email\": \"$email\",
\"password\": \"$password\"
}")
local token=$(echo "$response" | jq -r '.accessToken')
if [[ "$token" != "null" && "$token" != "" ]]; then
echo "$token" | pbcopy
echo "Token copied to clipboard!"
else
echo "Login failed:"
echo "$response"
fi
}
수정을 했으니 다시 로드!
source ~/.zshrc
3. 사용 방법
- 터미널을 새로 열면 ~/.zsh/functions/*.zsh 안의 모든 함수가 자동 로드됩니다.
- 함수 실행:
kohee-token # dev 서버 로그인 (기본 계정)
kohee-token http://localhost:8080 my@id.com mypass # 로컬 로그인
hello # example.zsh의 함수
current_time # 현재 시간 출력
이렇게 하니 매번 스웨거에서 비번 치고.. 클릭하고 받아서 복사하는 과정이 없어서 정말 편하더라구여
강추!
Comments