Skip to content

hooneun/alias-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alias Manager (별칭 관리자)

셸 히스토리를 분석하여 자주 사용하는 명령어에 대한 유용한 별칭(alias)을 자동으로 제안하는 스마트 명령행 도구입니다.

🎯 개요

Alias Manager는 셸 히스토리 파일들(.bash_history, .zsh_history 등)을 스캔하여 자주 사용되거나 길고 복잡한 명령어들을 찾아내어 더 짧은 별칭으로 만들 수 있도록 도와줍니다. 지능적으로 별칭 이름을 제안하고 셸 설정 파일에 자동으로 추가할 수 있습니다.

✨ 주요 기능

  • 다중 셸 지원: Bash, Zsh, Fish 및 기타 인기 셸 지원
  • 스마트 분석: 명령어 빈도, 길이, 복잡도 분석
  • 대화형 모드: 적용 전 제안된 별칭 검토 및 커스터마이징
  • 안전한 백업: 설정 파일 자동 백업
  • 충돌 감지: 기존 별칭과의 충돌 방지
  • 사용량 추적: 별칭 사용량 추적으로 최적화 지원

🚀 빠른 시작

# 설치
go install github.com/hooneun/alias-manager@latest

# 분석 및 별칭 제안
alias-manager analyze

# 대화형 모드
alias-manager suggest --interactive

# 자동으로 제안 적용
alias-manager apply --auto

📋 개발 로드맵

1단계: 핵심 기반 구축

  • 프로젝트 설정

    • Go 모듈 초기화
    • cobra를 사용한 기본 CLI 구조 설정
    • 프로젝트 디렉토리 구조 생성
    • 테스트 프레임워크 설정
  • 히스토리 파서

    • bash 히스토리 파서 구현
    • zsh 히스토리 파서 구현
    • 다양한 히스토리 형식 지원
    • 히스토리 파일 인코딩 문제 처리

2단계: 분석 엔진

  • 명령어 분석

    • 빈도 분석 알고리즘
    • 명령어 길이 점수 계산
    • 복잡도 점수 계산 (파이프, 플래그 등)
    • 유사한 명령어 패턴 인식
  • 별칭 생성

    • 스마트 별칭 이름 생성
    • 기존 별칭과의 충돌 감지
    • 별칭 유효성 검사 및 정제

3단계: 설정 관리

  • 셸 감지

    • 현재 셸 타입 감지
    • 셸 설정 파일 위치 찾기
    • 다중 셸 프로필 지원
  • 파일 작업

    • 안전한 설정 파일 백업
    • 적절한 형식으로 별칭 삽입
    • 롤백 기능

4단계: 사용자 인터페이스

  • CLI 명령어

    • analyze - 분석 결과 표시
    • suggest - 별칭 제안 생성
    • apply - 설정 파일에 별칭 적용
    • rollback - 최근 변경사항 되돌리기
    • stats - 사용 통계 표시
  • 대화형 모드

    • 제안 검토를 위한 명령행 인터페이스
    • 별칭 이름 커스터마이징
    • 일괄 승인/거부
    • 별칭 세트 내보내기/가져오기

🔧 기술 아키텍처

alias-manager/
├── cmd/                    # CLI 명령어
│   ├── root.go
│   ├── analyze.go
│   ├── suggest.go
│   └── apply.go
├── internal/
│   ├── analyzer/          # 명령어 분석 로직
│   ├── parser/            # 히스토리 파일 파서
│   ├── generator/         # 별칭 생성
│   ├── shell/             # 셸별 작업
│   └── config/            # 설정 관리
├── pkg/
│   └── types/             # 공유 타입 및 인터페이스
├── test/                  # 테스트 파일 및 픽스처
└── docs/                  # 문서

🧪 테스트 전략

  • 단위 테스트: 각 패키지에 대한 포괄적인 테스트 커버리지
  • 통합 테스트: 엔드투엔드 워크플로 테스트
  • 테스트 픽스처: 다양한 셸의 샘플 히스토리 파일
  • 성능 테스트: 대용량 히스토리 파일 처리

📊 분석 결과 예시

분석 결과:
================

별칭 후보 순위:
1. docker ps -a" (23회 사용)
   제안 별칭: dps

2. kubectl get pods -n production (18회 사용)
   제안 별칭: kgp

3. git log --oneline --graph --decorate --all (15회 사용)
   제안 별칭: glog

4. find . -name "*.go" -type f | xargs grep -l (12회 사용)
   제안 별칭: findgo

📄 라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages