{"id":20834638,"url":"https://github.com/cachyos/repo-manage-util","last_synced_at":"2025-05-08T01:45:39.785Z","repository":{"id":253976247,"uuid":"843607729","full_name":"CachyOS/repo-manage-util","owner":"CachyOS","description":"WIP","archived":false,"fork":false,"pushed_at":"2025-01-03T22:35:51.000Z","size":72,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-05-08T01:45:35.506Z","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":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CachyOS.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}},"created_at":"2024-08-16T22:46:05.000Z","updated_at":"2025-03-18T17:31:02.000Z","dependencies_parsed_at":"2024-09-10T02:03:48.837Z","dependency_job_id":"23c0eb2d-141f-46b8-a3b3-662feac82646","html_url":"https://github.com/CachyOS/repo-manage-util","commit_stats":{"total_commits":14,"total_committers":2,"mean_commits":7.0,"dds":0.1428571428571429,"last_synced_commit":"3e98fe43da4945d7daf6f9d81d5e6b9101753d37"},"previous_names":["cachyos/repo-manage-util"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CachyOS%2Frepo-manage-util","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CachyOS%2Frepo-manage-util/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CachyOS%2Frepo-manage-util/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CachyOS%2Frepo-manage-util/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CachyOS","download_url":"https://codeload.github.com/CachyOS/repo-manage-util/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252983753,"owners_count":21835760,"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":"2024-11-18T00:19:59.708Z","updated_at":"2025-05-08T01:45:39.759Z","avatar_url":"https://github.com/CachyOS.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# repo-manage-util\n\nA command-line utility for managing Arch Linux repositories.\n\n## Features\n\n- **Reset:** Resets the repository database and removes outdated packages.\n- **Update:** Updates the repository database with new packages and removes stale packages.\n- **Sync:** Updates the repository database with newer packages from the reference repository database.\n- **MovePkgsToRepo:** Moves packages from the current directory to the repository.\n- **MovePkgs:** Moves packages from one repository to another repository.\n- **IsPkgsUpToDate:** Checks if the packages in the repository are up-to-date.\n- **CleanupBackupDir:** Cleans up the backup directory, removing older package versions.\n\n## Installation\n\n### From the AUR\n\nYou can install `repo-manage-util` directly from the AUR using your preferred AUR helper. For example, using `paru`:\n\nTBD\n\n### Building from Source\n\nOr can be built from source:\n\n```bash\ngit clone https://github.com/cachyos/repo-manage-util.git\ncd repo-manage-util\ncargo install --path .\n```\n\nThis will build and install the binary to `$HOME/.cargo/bin/`. Make sure this directory is in your `PATH` environment variable.\n\n## Configuration\n\nThe configuration file is located at `~/.config/repo-manage/config.toml` or `/etc/repo-manage/config.toml`.\n\n**Example Configuration:**\n\n```toml\n[profiles.myrepo]\nrepo = \"/path/to/myrepo.db.tar.zst\"\nadd_params = [\"--sign\", \"--include-sigs\"]\nrm_params = [\"--sign\"]\nrequire_signature = true\nbackup = true\nbackup_dir = \"/path/to/backup/dir\"\nbackup_num = 3  # Keep last 3 versions\ndebug_dir = \"/path/to/debug/dir\"\ninteractive = false\nreference_repo = \"/ref/path/to/myrepo.db.tar.zst\"\n```\n\n**Explanation of the Example Configuration:**\n\n- **`[profiles.myrepo]`**: This defines a profile named \"myrepo\". You can have multiple profiles for different repositories.\n- **`repo = \"/path/to/myrepo.db.tar.zst\"`**: This specifies the path to the repository database file (the `.db.tar.zst` file).\n- **`add_params = [\"--sign\", \"--include-sigs\"]`**: These are additional parameters that will be passed to the `repo-add` command when adding packages to the repository. In this case, it's telling `repo-add` to sign the database and include signatures.\n- **`rm_params = [\"--sign\"]`**: Similar to `add_params`, these are additional parameters passed to the `repo-remove` command, used when removing packages from the repository. Here, it tells `repo-remove` to sign the database after removal.\n- **`require_signature = true`**: This setting enforces that packages must have valid signatures before being added to the repository. This is a good security practice.\n- **`backup = true`**: This enables the backup feature. When enabled, outdated packages will be moved to the backup directory instead of being deleted.\n- **`backup_dir = \"/path/to/backup/dir\"`**: This specifies the directory where outdated packages will be backed up.\n- **`backup_num = 3`**: This sets a limit on the number of versions to keep for each package in the backup directory. In this case, only the last 3 versions of each package will be kept.\n- **`debug_dir = \"/path/to/debug/dir\"`**: This option is used to specify a directory where debug packages should be stored.\n- **`interactive = false`**: This disables interactive mode. When disabled, the tool will not prompt for confirmation before performing actions.\n- **`reference_repo = \"/ref/path/to/myrepo.db.tar.zst\"`**: This specifies the path to the reference repository database file (the `.db.tar.zst` file).\n\n**Configuration Options:**\n\n- **repo:** Path to the repository database file.\n- **add_params:** Additional parameters to pass to `repo-add`.\n- **rm_params:** Additional parameters to pass to `repo-remove`.\n- **require_signature:** Whether to require package signatures.\n- **backup:** Whether to backup outdated packages.\n- **backup_dir:** Directory to store backup packages.\n- **backup_num:** Number of package versions to keep in the backup directory.\n- **debug_dir:** Directory to store debug packages.\n- **interactive:** Whether to prompt for confirmation before performing actions.\n\n## Usage\n\n```\nrepo-manage-util --profile \u003cPROFILE\u003e [COMMAND]\n```\n\n**Available Commands:**\n\n- **reset:** Resets the repository.\n- **update:** Updates the repository.\n- **sync:** Syncs repository with the reference repository.\n- **move-pkgs-to-repo:** Moves packages from the current directory to the repository.\n- **move-pkgs** Moves packages from one repository to another repository.\n- **is-pkgs-up-to-date:** Checks if the packages in the repository are up-to-date.\n- **cleanup-backup-dir:** Cleans up the backup directory.\n\n**Example:**\n\n```bash\nrepo-manage-util --profile myrepo update\n```\n\nFor comprehensive usage instructions and examples, please refer to the **Usage** section in the main documentation (available after installation using `repo-manage-util --help`).\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request on GitHub.\n\n## License\n\nThis project is licensed under the GPLv3 License. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcachyos%2Frepo-manage-util","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcachyos%2Frepo-manage-util","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcachyos%2Frepo-manage-util/lists"}