Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/herbygillot/cargo2ports
Generate cargo.crates stanzas for MacPorts from a Rust project's Cargo.lock file
https://github.com/herbygillot/cargo2ports
macports rust-cargo
Last synced: 30 days ago
JSON representation
Generate cargo.crates stanzas for MacPorts from a Rust project's Cargo.lock file
- Host: GitHub
- URL: https://github.com/herbygillot/cargo2ports
- Owner: herbygillot
- Created: 2020-05-17T19:01:16.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-11-30T22:40:22.000Z (12 months ago)
- Last Synced: 2024-04-19T18:43:48.547Z (7 months ago)
- Topics: macports, rust-cargo
- Language: Python
- Homepage:
- Size: 10.7 KB
- Stars: 6
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# cargo2ports
Simple Python utility to generate a `cargo.crates` stanza for a MacPorts
Portfile from a Rust project's lockfile.For example, taking in a `Cargo.lock` file that looks like this:
```
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "ahash"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c251dce3391a07b43218ca070203ecb8f9f520d35ab71312296a59dbceab154"
dependencies = [
"const-random",
][[package]]
name = "aho-corasick"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
dependencies = [
"memchr",
]
...
```...this utility will generate this:
```
cargo.crates \
ahash 0.3.4 9c251dce3391a07b43218ca070203ecb8f9f520d35ab71312296a59dbceab154 \
aho-corasick 0.7.10 8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada \
ansi_term 0.11.0 ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b \
arrayref 0.3.6 a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544 \
arrayvec 0.5.1 cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8 \
atty 0.2.14 d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8 \
autocfg 1.0.0 f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d \
base64 0.11.0 b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7 \
bitflags 1.2.1 cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693 \
blake2b_simd 0.5.10 d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a \
...
```### Installation
You can install `cargo2ports` by running the following command in a virtualenv:
```
python setup.py install
```Follow these steps to install `pipx` from MacPorts and install `cargo2ports` globally
```
sudo port selfupdate
sudo port install pipx
pipx install git+https://github.com/herbygillot/cargo2ports.git
```Note: Update your `$PATH` to add the pipx bin directory or update the `PIPX_BIN_DIR` environment variable.
### Usage
`cargo2ports ./Cargo.lock`
If you are already in a directory containing a `Cargo.lock` file, you run just the command with no parameters:
`cargo2ports`
If you would like to change the number of spaces each stanza line is indented by, use `-i`:
`cargo2ports -i 2 ./Cargo.lock`
You can also change the width of the field containing the name and version usin `-w`:
`cargo2ports -w 25 ./Cargo.lock`