Skip to main content

폴더 구조와 코드들을 하나의 txt 파일에 작성해주는 도구

Project description

pagr (Project Aggregator) 📄➡️📦

pagr는 프로젝트의 디렉토리 구조와 선택된 파일들의 내용을 하나의 텍스트 파일로 깔끔하게 취합해주는 명령줄 도구입니다. ChatGPT와 같은 AI 모델에게 프로젝트 전체 컨텍스트를 효율적으로 전달해야 할 때 유용하게 사용할 수 있습니다. .gitignore 파일과 추가적인 .pagrignore 파일을 통해 취합 대상에서 제외할 파일이나 디렉토리를 유연하게 관리할 수 있습니다.

🚀 설치 (Installation)

pipx를 사용하여 pagr를 설치하는 것을 강력히 권장합니다. pipx는 CLI 도구를 시스템의 다른 라이브러리와 격리된 환경에 설치하고 실행해주어, 파이썬 환경의 충돌을 방지합니다.

  1. pipx 설치 (아직 없다면):

    # pip를 통해 pipx 설치
    pip install --user pipx
    # PATH 환경변수에 pipx 경로 추가 (필요시)
    python -m pipx ensurepath
    

    (설치 후 터미널을 재시작해야 할 수도 있습니다. 자세한 내용은 pipx 공식 문서를 참고하세요.)

  2. pagr 설치 (via pipx):

    pipx install project-aggregator
    

    이제 터미널 어디서든 pagr 명령어를 사용할 수 있습니다! 🎉

🤔 다른 설치 방법

  • pip 사용 (가상환경 권장):
    # 가상환경 생성 및 활성화 (예: venv)
    # python -m venv .venv
    # source .venv/bin/activate # Linux/macOS
    # .venv\Scripts\activate # Windows
    
    pip install project-aggregator
    
  • 최신 개발 버전 설치 (GitHub 직접):
    pipx install git+https://github.com/authentic0376/project_aggregator.git
    

💡 사용법 (Usage)

🏃 파일 취합 실행 (run)

프로젝트 디렉토리 구조와 필터링된 파일 내용을 취합하여 하나의 파일로 만듭니다.

기본 사용법:

  • 루트 디렉토리: 취합을 시작할 최상위 디렉토리입니다. --root <경로> 옵션으로 지정하며, 생략 시 현재 작업 디렉토리가 사용됩니다.
  • 출력 파일: 결과가 저장될 파일입니다. --output <파일경로> 옵션으로 지정하며, 생략 시 기본적으로 사용자 Downloads 폴더의 pagr_output.txt에 저장됩니다.
# 1. 현재 디렉토리의 모든 파일(무시 규칙 제외) 취합
# 결과는 기본 Downloads 폴더의 pagr_output.txt 에 저장됩니다.
pagr run

# 2. 특정 디렉토리를 루트로 지정하고, 그 안의 모든 파일(무시 규칙 제외) 취합
pagr run --root /path/to/your/project

# 3. 현재 디렉토리에서 취합하여 결과를 특정 파일로 저장
pagr run --output my_project_bundle.txt

# 4. 루트 지정과 출력 파일 지정을 동시에 사용
pagr run --root /path/to/your/project --output /path/to/output/bundle.md

특정 파일/디렉토리만 취합하기:

--root, --output 같은 옵션 외에 추가로 제공되는 인자들은 루트 디렉토리 내에서 취합할 대상을 명시적으로 지정하는 상대 경로 또는 Glob 패턴 (*, ** 등)입니다. 이 인자들이 주어지면, 지정된 패턴에 맞는 파일들만 (무시 규칙을 통과한 후) 코드 취합 대상이 됩니다.

이 인자들이 주어지지 않으면, 루트 디렉토리 내의 모든 파일 (무시 규칙 제외)이 취합 대상이 됩니다 (위의 기본 사용법 예시처럼).

# 5. 현재 디렉토리(--root 생략)에서 'src' 폴더 전체와 최상위 '.py' 파일들만 취합
pagr run src *.py

# 6. 특정 루트 디렉토리 내에서 'app/main.py' 파일과 'lib' 폴더 내의 모든 파일만 취합
pagr run --root /my/project app/main.py lib

# 7. 특정 루트 내의 모든 파이썬 파일(`**/*.py`)과 `requirements.txt` 파일만 취합하여 특정 파일에 저장
pagr run --root /my/project "**/*.py" requirements.txt --output python_files.txt
# (참고: 쉘 환경에 따라 Glob 패턴에 따옴표가 필요할 수 있습니다)

# 8. 현재 디렉토리에서 특정 패턴의 파일들만 취합하여 기본 출력 위치에 저장
pagr run "docs/**/*.md" "examples/*.py"

도움말:

# run 명령어의 상세 도움말 보기 (모든 옵션 및 인자 설명 확인 가능)
pagr run --help

🛠️ 무시 규칙 편집 (ignore)

.gitignore 외에 pagr 도구 자체의 무시 규칙을 담는 .pagrignore 파일을 편집합니다. 이 파일은 Git으로 관리할 필요가 없거나, AI 컨텍스트에 특히 불필요한 파일(예: *.lock, *.log, build/, dist/, 테스트 데이터 등)을 지정하기 좋습니다.

# 현재 디렉토리의 .pagrignore 파일을 기본 편집기로 엽니다 (파일이 없으면 새로 생성).
pagr ignore

# 도움말 보기
pagr ignore --help

.pagrignore 파일의 형식은 .gitignore와 동일합니다 (Git 와일드카드 패턴 사용).

ℹ️ 기타 명령어

# 버전 확인
pagr --version

# 전체 도움말 보기
pagr --help

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

project_aggregator-0.1.2.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

project_aggregator-0.1.2-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file project_aggregator-0.1.2.tar.gz.

File metadata

  • Download URL: project_aggregator-0.1.2.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.7 Windows/11

File hashes

Hashes for project_aggregator-0.1.2.tar.gz
Algorithm Hash digest
SHA256 67ef91aca3ba69cd6fe8b46fe993553edd9c2925d1d58627e4a78af5595f4009
MD5 1e6ac0b83ba6883aa1e47b3969f50110
BLAKE2b-256 4770a372fc506f292bf3027861297010df2b81b3b0e600eaac5db101944f64a5

See more details on using hashes here.

File details

Details for the file project_aggregator-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for project_aggregator-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94e43f2e2cd91158a4825b258a532a7320eeb68cd520155385bfb671058b70b9
MD5 8d841772882638b409ae25ea6b753dab
BLAKE2b-256 85b01563729d3611cb446c5341e6b8318a8981b41c43ff77c9d3b5421b200ffa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page