A converter plugin from the bencode format for Nushell.
The plugin was last tested on nushell version 0.93.0
.
The plugin is unstable as the interface Nu
for plugins is unstable.
The plugin could be useful for inspecting a BitTorrent metainfo
file (*.torrent), but it is primarily used to explore writing a Nu
plugin.
cargo install nu_plugin_from_bencode
Register the plugin:
register <path to plugin>/nu_plugin_from_bencode
By default, cargo installs to $HOME/.cargo/bin
on Unix systems.
The from bencode
command is provided with no parameter arguments.
To use:
> open ubuntu-20.04.4-live-server-amd64.iso.torrent | from bencode
╭───────────────┬─────────────────────────────────────╮
│ announce │ https://torrent.ubuntu.com/announce │
│ announce-list │ [list 2 items] │
│ comment │ Ubuntu CD releases.ubuntu.com │
│ created by │ mktorrent 1.1 │
│ creation date │ 1645734525 │
│ info │ {record 4 fields} │
╰───────────────┴─────────────────────────────────────╯
> open ubuntu-20.04.4-live-server-amd64.iso.torrent | from bencode | select announce-list.0.0
╭───────────────────┬─────────────────────────────────────╮
│ announce-list.0.0 │ https://torrent.ubuntu.com/announce │
╰───────────────────┴─────────────────────────────────────╯
> open ubuntu-20.04.4-live-server-amd64.iso.torrent | from bencode | get announce-list.1.0
https://ipv6.torrent.ubuntu.com/announce
> open ubuntu-20.04.1-live-server-amd64.iso.torrent | from bencode | select info.name info.length
╭─────────────┬──────────────────────────────────────╮
│ info.name │ ubuntu-20.04.4-live-server-amd64.iso │
│ info.length │ 1331691520 │
╰─────────────┴──────────────────────────────────────╯
Licensed under either of Apache License, Version 2.0 or MIT License at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.