cmd/ppilot | ||
internal | ||
sample | ||
go.mod | ||
go.sum | ||
LICENSE | ||
readme.md |
Parch Pilot 🚀
Parch Pilot is a powerful, modular CLI tool crafted in Go to simplify Parch Linux deployments and configurations. It lets you define your system setup declaratively in YAML, automating tasks like base installations, package management, custom scripts, and service enabling. Ideal for bootstrapping new Parch systems or restoring setups reproducibly, it's part of the ParchLinux Project aimed at modernizing Parch workflows with efficient, script-free automation.
With its clean architecture and Arch-native features, Parch Pilot handles everything from EFI/BIOS bootloaders to AUR and Flatpak integrations, all while keeping things lightweight and fast.
Key Features
- Declarative YAML Configs: Describe your entire system in a single file for easy versioning and sharing.
- Deployment & Restore Modes: Use
--deploy
for fresh installs viapacstrap
, or--restore
for applying configs on running systems. - Broad Package Support: Seamlessly installs from Pacman, AUR (with
yay
), and Flatpak. - Customizable Automation: Run shell commands and manage systemd services automatically.
- Validation Built-In: Check your YAML for errors before execution with
--validate
. - Secure & Efficient: Runs as root where needed, with modular Go code for extensibility.
Getting Started
Prerequisites
You'll need Go 1.21+ for building, and an Arch Linux environment for full functionality. Tools like pacstrap
, yay
, flatpak
, and arch-chroot
should be available for deployment and restore operations.
Installation
Clone the repo and build the binary:
git clone https://git.parchlinux.com/tools/parch-pilot.git
cd parch-pilot
go mod tidy
go build -o ppilot ./cmd/ppilot
NOTE: For now there isn't any PKGBUILD for This program, since it is still in Development.
Usage
Invoke Parch Pilot with your YAML config and a flag:
ppilot [flags] /path/to/config.yaml
--deploy
: Bootstraps a new system (root required; partitions must be prepped).--restore
: Applies config to an installed system (root required; assumesyay
/flatpak
installed).--validate
: Validates the YAML without changes.
Typical Workflow
- Prepare your config (you can find the fucking sample here:
sample/sample.yaml
). - Deploy:
sudo ppilot --deploy sample/sample.yaml
– mounts, installs base, sets up bootloaders, and copies the config. - After booting:
sudo ppilot --restore /root/sample.yaml
– installs packages, runs commands, and starts services.
Configuration
Your setup lives in a YAML file with sections like deploy
for install settings, pacman_packages
for official repos, aur_packages
for AUR, flatpak_packages
for Flatpaks, custom_commands
for shell scripts, and services
for systemd units.
Contributing
Join the ParchLinux Project! Fork the repo, branch out (git checkout -b feature/cool-addition
), commit, push, and PR. Check CONTRIBUTING for guidelines. We value bug fixes, features, and docs.
License
Licensed under the GNU General Public License v3.0 - see LICENSE for details.
Made with ❤️ for Parch Gnu/Linux