Automated developer tool deployment for macOS Guest accounts.
SchoolCode automates setup of a complete development environment for students on shared macOS machines. It installs Python, Homebrew, Git, and pip with security wrappers that prevent Guest accounts from modifying system packages or using sudo.
- macOS 10.14+ (Mojave or newer)
- Administrator (sudo) privileges
- ~2GB free disk space
- Internet connection
# Clone the repository
git clone https://github.com/luka-loehr/schoolcode.git
cd schoolcode
sudo ./schoolcode.shVerify installation:
sudo ./schoolcode.sh --statussudo ./schoolcode.sh # Install everything
sudo ./schoolcode.sh --status # Check system health
sudo ./schoolcode.sh --uninstall # Remove SchoolCode
sudo ./schoolcode.sh --logs # View logs interactively
sudo ./schoolcode.sh --help # Show help- Xcode Command Line Tools - Required development tools
- Homebrew - Package manager (non-interactive installation)
- Python - Official Python from python.org
- Git - Version control
- pip - Python package manager
- Security Wrappers - Prevents Guest users from modifying system packages
Guest accounts are fully isolated:
- Cannot use
sudoor install system-wide packages - pip restricted to user-only installations (
--userflag) - Homebrew limited to read-only commands
- All modifications cleaned on logout
For granular control, use the CLI tool:
# System management
sudo ./scripts/schoolcode-cli.sh status [detailed]
sudo ./scripts/schoolcode-cli.sh health [detailed]
sudo ./scripts/schoolcode-cli.sh repair
# Guest account
sudo ./scripts/schoolcode-cli.sh guest setup
sudo ./scripts/schoolcode-cli.sh guest test
# Configuration
sudo ./scripts/schoolcode-cli.sh config show
sudo ./scripts/schoolcode-cli.sh tools listInstallation problems:
sudo ./schoolcode.sh --status # Check system health
./schoolcode.sh --logs errors # View error logs
sudo ./scripts/schoolcode-cli.sh repair # Auto-fix issuesGuest account issues:
sudo ./scripts/schoolcode-cli.sh guest test
sudo ./scripts/schoolcode-cli.sh guest setupSchoolCode/
├── schoolcode.sh # Main entry point
├── scripts/
│ ├── schoolcode-cli.sh # Advanced CLI tool
│ ├── install.sh # Installation logic
│ ├── uninstall.sh # Removal script
│ ├── utils/ # Utility functions
│ └── setup/ # Guest configuration
├── tests/ # Test suite
└── README.md # This file
Apache License 2.0 - © 2025 Luka Löhr
Test notice: daemon version tracking test - 2025-12-03 11:55