A command-line tool for managing and downloading Phrack magazine issues.
cargo install phrack-issue-manager
phrack-issue-manager --helpContributions are welcome! To contribute:
- Fork the repository and create your branch from
main. - Make your changes and add tests if applicable.
- Ensure the project builds and passes all checks.
- Use Conventional Commits for your commit messages.
- Open a pull request describing your changes.
Please read the Commit Message Guidelines section for details on writing commit messages.
- Install Rust
- If you don't have Rust, install it from rustup.rs:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- If you don't have Rust, install it from rustup.rs:
- Clone the repository
git clone https://github.com/hasanen/phrack-issue-manager.git cd phrack-issue-manager - Build the project
cargo build --release
- Run the tool
cargo run -- --help
To list all available configuration keys:
cargo run -- configTo get the value of a specific configuration key:
cargo run -- config <config_key>Example:
cargo run -- config download-pathTo set a configuration value:
cargo run -- config <config_key> <value>Example:
cargo run -- config download-path ./downloads/Download a single issue:
cargo run -- download-issue --issue 1Download a single issue and refresh (remove old downloaded issue first):
cargo run -- download-issue --issue 1 --refreshDownload all non-downloaded issues:
cargo run -- download-issue --all-issuesPurge existing downloads and re-download all issues:
cargo run -- download-issue --all-issues --refreshExport single or all issues as one txt file. Other supported formats are pdf or epub.
cargo run -- export-issue --issue 1 --format txt --output-path ./path # generates single .txt of all articles
cargo run -- export-issue --all-issues --format txt --output-path ./path # generates single .txt of all articles per publication/issuecargo run -- sync-with-calibre # ability to sync generated txt, pdf and epub files with calibre library, with proper metadata (eg. using series-field)This project uses the Conventional Commits specification for commit messages. Please use this format when making commits. Example types include feat, fix, docs, chore, and more. This helps automate changelogs and maintain a clear project history.
Example:
feat: add config subcommand
fix(config): handle missing config file error
docs: update README with usage instructions
refactor: simplify download logic
test: add tests for config parser
chore: update dependencies
For more details, see the Conventional Commits documentation.
- Implement commands in "Commands TBD"