[ Note that CCC is a work-in-progress - this documentation is preliminary and may change. ]
CCC (Common Course Configuration) is a course environment management tool meant to reduce setup time and streamline assignment completion for CS students. It currently supports computer science courses that require container-based environments and is being extended to support courses with other development environment needs. This README details how to use the tool as a student
Quick Start
# Install the CCC tool ./install.sh # Setup courses directory and select auto-update preferences ccc init # Open a course environment ccc open <course-id> --> ex: ccc open csci-1515-demo
Requirements
- Podman
- Git
Commands
Course Management
ccc list <--avail or --installed><- List ccc supported courses or your installed coursesccc open <course-id> <OPTIONAL: --skip-installer>- Open course environment. Use flag --skip-installer to skip CCC managed installerccc cleanup <course-id- Clean up all resources associated with course environment
Container Management
ccc status <course-id>- Show container/course status (omit course for default/shared container info)ccc cleanup <course-id>- Clean up all resources associated with course environment
Tool Management
ccc auto-update <status, enable, disable>- View, enable, and disable auto-update preferencesccc init- Setup courses directory and initial auto update preferenceccc upgrade <--user, --system, --help>- Upgrade the CCC tool (defaults to --user if no flag given)ccc config get [config var]- Get the value of a CCC configuration variableccc config set [config var] [config value]- Set the value of a CCC configuration variable
Options
--help, -h- Show help--version- Show ccc version
Installation
User-local (default):
./install.sh
System-wide:
sudo ./install.sh --system
Reset/Clear CCC Generated Resources
./reset.sh
Uninstall:
./uninstall.sh
How It Works (see also docs on github)
- Course registry (
registry.csv) defines available courses, links their developement repos, and lists their requirements (container, architecture, etc) - CCC (
bin/ccc) is the central dispatch for all CCC commands, loads necessary helper files and environment variables needed for course setup - Open (share/open.sh) houses the logic that determines how a course will be opened (based on registry, either container or local shell), then opens the appropriate environment
share/course_installer.shis the installer used to download course specific packages, generate symlinks, and load environment variables into the shared/default CCC container. This facilitates multiple courses using the same, shared container provided by CCC.