{"id":29603123,"url":"https://github.com/deepchirp/aur-aacs-keydb","last_synced_at":"2025-07-20T14:05:51.633Z","repository":{"id":303424645,"uuid":"1015442200","full_name":"DeepChirp/aur-aacs-keydb","owner":"DeepChirp","description":"A Rust software for automatically updating the aacs-keydb package on the AUR","archived":false,"fork":false,"pushed_at":"2025-07-07T14:33:34.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-07T15:36:58.747Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeepChirp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-07T14:02:36.000Z","updated_at":"2025-07-07T14:33:37.000Z","dependencies_parsed_at":"2025-07-07T15:40:29.053Z","dependency_job_id":"5979407d-023d-40fa-8fd6-222db5650718","html_url":"https://github.com/DeepChirp/aur-aacs-keydb","commit_stats":null,"previous_names":["deepchirp/aur-aacs-keydb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DeepChirp/aur-aacs-keydb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepChirp%2Faur-aacs-keydb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepChirp%2Faur-aacs-keydb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepChirp%2Faur-aacs-keydb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepChirp%2Faur-aacs-keydb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeepChirp","download_url":"https://codeload.github.com/DeepChirp/aur-aacs-keydb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeepChirp%2Faur-aacs-keydb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266135685,"owners_count":23881803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-20T14:05:50.871Z","updated_at":"2025-07-20T14:05:51.625Z","avatar_url":"https://github.com/DeepChirp.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AUR AACS KeyDB Daily Updater\n\nThis is an automated tool for maintaining the [`aacs-keydb-daily`](https://aur.archlinux.org/packages/aacs-keydb-daily) package on AUR.\n\n## Features\n\n1. **Automatic archiving**: Archive `http://fvonline-db.bplaced.net/export/keydb_eng.zip` on web.archive.org\n2. **SHA256 verification**: Compare current AUR package SHA256 with archived file SHA256\n3. **Automatic generation**: If differences are detected, automatically generate AUR package files including:\n   - Update version number (based on archive timestamp: YYYYMMDDhhmmss)\n   - Update SHA256 hash\n   - Replace original link with web.archive.org archive link\n   - Generate new .SRCINFO file\n   - Commit and push changes to AUR repository\n4. **Structured logging**: Uses the `tracing` library for hierarchical, structured logging that can be filtered by level and output to stdout, files, or syslog\n\n## Configuration\n\n### Environment Variables\n\nCreate a `.env` file (optional):\n\n```env\n# SSH Key Path for AUR repository access\n# Default: ~/.ssh/id_ed25519\nSSH_KEY_PATH=~/.ssh/id_ed25519_aur\n\n# Log level configuration (optional)\n# Default: info\n# Options: trace, debug, info, warn, error\nRUST_LOG=info\n```\n\n### SSH Key\n\nEnsure you have SSH access to AUR:\n\n- Default path: `~/.ssh/id_ed25519`\n- Make sure the key is added to your AUR account\n\n## Usage\n\n### Build\n\n```bash\ncargo build --release\n```\n\n### Run\n\n```bash\ncargo run\n```\n\nOr run the compiled binary:\n\n```bash\n./target/release/aur-aacs-keydb\n```\n\n## Package Information\n\n- **Package name**: `aacs-keydb-daily`\n- **Description**: Contains the Key Database for the AACS Library (Daily Updates)\n- **Architecture**: any\n- **Dependencies**: libaacs\n- **License**: Based on upstream project\n- **URL**: \u003chttp://fvonline-db.bplaced.net/\u003e\n\n## Workflow\n\n1. **Request archive**: Request creation of new archive of `http://fvonline-db.bplaced.net/export/keydb_eng.zip` on web.archive.org\n2. **Get archive URL**: Retrieve the archive URL from web.archive.org\n   - Example: `https://web.archive.org/web/20250707095314/http://fvonline-db.bplaced.net/export/keydb_eng.zip`\n   - Archive URL is used to download the file\n   - Archive timestamp is used to generate the version number (YYYYMMDDhhmmss)\n3. **Download and verify**: Download file from archive URL and calculate SHA256\n4. **Clone/update AUR repo**: Clone or update the AUR repository\n5. **Compare hash**: Compare with current AUR package SHA256 (if package exists)\n6. **Generate files**: If different or package doesn't exist, generate PKGBUILD and .SRCINFO\n7. **Commit and push**: Automatically commit and push changes to AUR\n\n## Module Structure\n\n- `app.rs`: Core application logic and workflow orchestration, uses `tracing::info` for logging\n- `archive.rs`: Web Archive API interaction, handles archive creation and retrieval, uses `tracing::info` for detailed operation logging\n- `aur.rs`: AUR package management functionality, handles PKGBUILD and .SRCINFO generation\n- `config.rs`: Configuration management, reads environment variables and validates settings\n- `git.rs`: Git operations helper, handles repository cloning/updating and commits, uses `tracing::info` for operation status\n- `main.rs`: Main application entry point and tracing initialization with hierarchical logging configuration\n- `error.rs`: Custom error type definitions and Result type\n\n## Logging\n\nThis application uses the `tracing` library for structured, hierarchical logging:\n\n- Logs are formatted with timestamps and module paths\n- Log level can be controlled via environment variables (e.g., `RUST_LOG=debug`)\n- Default log level is INFO\n- All modules use consistent logging (no direct println! calls)\n- Logs can be redirected to files or syslog by modifying the tracing subscriber in main.rs\n\n## Notes\n\n- Current version automatically commits and pushes to AUR\n- The tool clones/updates the AUR repository automatically\n- Generated files are in `/tmp/aur-aacs-keydb-daily/` directory\n- Network connection is required (for web.archive.org access)\n- SSH key must be configured for AUR access\n\n## License\n\nThis project is open source under [0BSD](https://opensource.org/licenses/0BSD).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepchirp%2Faur-aacs-keydb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepchirp%2Faur-aacs-keydb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepchirp%2Faur-aacs-keydb/lists"}