Skip to content

bluk/nu_plugin_from_bencode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nu Plugin From Bencode

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.

Installation

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.

Usage

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                           │
╰─────────────┴──────────────────────────────────────╯

License

Licensed under either of Apache License, Version 2.0 or MIT License at your option.

Contributions

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.