feat: add bread-sync module for snapshot and restore functionality

- Introduced `bread-sync` module with core functionalities for syncing system state via Git.
- Implemented `MachineProfile` struct for managing machine profiles, including methods for reading and writing profiles.
- Added package management support with snapshot capabilities for `pacman`, `pip`, `npm`, and `cargo`.
- Created comprehensive tests for sync operations, package parsing, and machine profile management.
- Enhanced `udev` adapter to include vendor and product IDs for scanned devices.
- Updated state engine to handle module clearing commands.
- Introduced Lua integration for accessing machine information and file system operations.
- Improved packaging documentation for Arch Linux and systemd service setup.
This commit is contained in:
Breadway 2026-05-12 00:20:45 +08:00
parent 251c586b6f
commit 364a35142e
25 changed files with 3930 additions and 92 deletions

View file

@ -1,5 +1,47 @@
Packaging notes
================
Packaging
=========
This repo targets Arch packaging. The Arch PKGBUILD skeleton lives under
`packaging/arch/`.
This directory contains distribution packaging for Bread.
```
packaging/
├── arch/
│ └── PKGBUILD ← Arch Linux package build script
└── systemd/
└── breadd.service ← systemd user service unit
```
## Arch Linux
```bash
cd packaging/arch
makepkg -si
```
The PKGBUILD builds both `breadd` and `bread` from source and installs them to `/usr/bin`. It also installs the systemd user service unit to `/usr/lib/systemd/user/`.
Before publishing to the AUR, update `pkgver`, `source`, and `sha256sums` to point at a tagged release tarball.
## systemd user service
The service unit starts `breadd` as a user service after the graphical session is available.
```bash
# Install and enable manually (if not using the PKGBUILD)
mkdir -p ~/.config/systemd/user
cp systemd/breadd.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now breadd
# Check status
systemctl --user status breadd
journalctl --user -u breadd -f
```
The service sets `RUST_LOG=info` by default. To increase verbosity, override it in a drop-in:
```ini
# ~/.config/systemd/user/breadd.service.d/debug.conf
[Service]
Environment=RUST_LOG=debug
```