소개
Assignment Packer(ap)는 C 언어 과제 제출물을 Canvas 학습 관리 시스템에 업로드하기 적합한 폴더 및 zip 구조로 패킹하는 명령줄 도구입니다. Ian Fogarty가 개발했으며, GY350 CT103 프로그래밍 모듈에서 사용하기 위해 만들어졌습니다. MIT 라이선스로 배포됩니다.
상세정보
Canvas 업로드 패키징
Assignment Packer는 C 과제 파일을 자동으로 감지하여 Canvas가 요구하는 정확한 폴더 및 zip 구조로 묶어줍니다. 과제 번호, 학생 이름, 학번을 지정하면 Assignment7_JoeBloggs_123456789_Submission.zip 형태의 파일을 생성합니다.
자동 문서 생성 (–auto-doc)
–auto-doc 옵션을 사용하면 gcc 또는 clang으로 .c 파일을 컴파일하고, 실행 결과를 캡처하여 터미널 스크린샷(PNG)을 생성한 후, 코드와 함께 .doc 파일로 패키징합니다.
사용자 정의 실행 명령
–run-command 옵션으로 컴파일 및 실행 명령을 직접 지정할 수 있습니다. 예: make && ./myprogram 또는 ./a.out.
stdin 입력 지원
–input 옵션을 사용하여 프로그램에 표준 입력을 파이프할 수 있습니다. 예: --input "5nhello". 입력이 없으면 대화형 모드로 실행됩니다.
테마 및 스크린샷 커스터마이징
기본 제공 테마(default, light, dracula, monokai, solarized)를 선택하거나, TOML 파일로 사용자 정의 테마를 만들 수 있습니다. –run-display-template으로 스크린샷에 표시될 프롬프트를 변경할 수 있습니다.
Windows
- winget:
winget install cat-forgor.ap - Scoop:
scoop bucket add ap https://github.com/cat-forgor/AssignmentPacker후scoop install ap - MSI 설치 프로그램: 릴리스에서
ap-windows-x64.msi다운로드 후 실행 (PATH 자동 추가)
macOS/Linux
- Homebrew:
brew tap cat-forgor/ap https://github.com/cat-forgor/AssignmentPacker후brew install ap - Nix:
nix run github:cat-forgor/AssignmentPacker(설치 없이 실행) 또는nix profile install github:cat-forgor/AssignmentPacker - Arch Linux:
yay -S ap-bin - Debian/Ubuntu: 릴리스에서 .deb 다운로드 후
sudo dpkg -i ap_*.deb
기본 사용법
- 터미널에서
ap init을 실행하여 이름, 학번, 자동 문서 생성 여부를 설정합니다. - 과제 폴더로 이동한 후
ap -a 7을 실행합니다. (과제 번호 7인 경우) - 생성된 zip 파일을 Canvas에 업로드합니다.
한 번 설정하면 이후에는 ap -a 7만 입력하면 됩니다.
활용 예시
- 과제 제출물을 자동으로 패키징하여 Canvas에 업로드할 때
- 프로그램 실행 결과를 스크린샷과 함께 문서로 만들어 제출할 때
- 여러 과제를 일관된 형식으로 관리하고자 할 때
지원 환경
Windows, macOS, Linux에서 사용 가능하며, 소스에서 빌드하려면 Rust 1.85+가 필요합니다. Windows에서는 winget, Scoop, MSI 설치 프로그램을 지원합니다.
버전 및 업데이트
현재 버전은 1.0.3이며, ap update 명령으로 최신 릴리스 확인이 가능합니다.
라이선스 및 확인 사항
MIT 라이선스로 배포됩니다. 자세한 내용은 공식 GitHub 저장소를 참조하세요.
시스템 요구사항
Windows, macOS, Linux에서 사용 가능. Rust 1.85+ (소스 빌드 시). Windows에서는 winget, Scoop, MSI 설치 프로그램 지원.


