diff --git a/.github/workflows/update-results.yaml b/.github/workflows/update-results.yaml new file mode 100644 index 0000000..addf80b --- /dev/null +++ b/.github/workflows/update-results.yaml @@ -0,0 +1,37 @@ +on: + # push: + # branches: + # - main + workflow_dispatch: + schedule: + - cron: '0 3 * * 3' # At 03:00 on Wednesday + +name: Update plugin_details.md + +jobs: + update: + runs-on: ubuntu-latest + steps: + - name: Setup Nushell + uses: hustcer/setup-nu@v3.8 + with: + version: 0.95.0 + token: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/checkout@v2 + - name: Update plugin list + shell: nu {0} + run: | + nu -c ' + let output = "plugin_details.md"; + let config = "config.yaml"; + + use action.nu plugin-list create-table; + + open $config | create-table | to md | save $output -f; + $"\n\nlast update at `(date now | format date `%Y-%m-%d %H:%M:%S %Z`)`\n" | save --append $output; + ' + + - uses: EndBug/add-and-commit@v9 + with: + add: plugin_details.md # Only commit+push the output file + author_name: GitHub-Action diff --git a/README.md b/README.md index a397832..e300956 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,68 @@ # awesome-nu A curated list of awesome tools that work within the nu language ecosystem e.g. nushell, scripts, nana, etc. Feel free to raise a PR with your very cool script, plugin or custom completion 🚀. +If you are looking for interesting blog posts, media attention or youtube videos on nushell please checkout our [Showcase](https://github.com/nushell/showcase) ! + --- ## Plugins You can find some examples about how to create and use plugins in the [Nushell Plugins](https://www.nushell.sh/book/plugins.html) page. -- [nu_plugin_periodic_table](https://crates.io/crates/nu_plugin_periodic_table): A periodic table of elements plugin. -- [nu_plugin_query](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_query): Query json, xml and web pages. -- [nu_plugin_inc](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc): Plugin to increment semantic versioning strings. -- [nu_plugin_gstat](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gstat): Show the git working tree status. -- [nu_plugin_net](https://crates.io/crates/nu_plugin_net): List network interfaces on any platform -- [nu_plugin_pnet](https://github.com/fdncred/nu_plugin_pnet): Same as above but named `pnet` as to not conflict with Windows `net` built-in. +- [nu_plugin_audio_hook](https://github.com/FMotalleb/nu_plugin_audio_hook): A nushell plugin to make and play sounds. +- [nu_plugin_bash_env](https://github.com/tesujimath/nu_plugin_bash_env): A Bash environment plugin for nushell. +- [nu_plugin_bexpand](https://codeberg.org/Taywee/nu-plugin-bexpand): Bash style brace expansion for nushell. - [nu_plugin_bin_reader](https://github.com/WindSoilder/nu_plugin_bin_reader): A high level, general binary data reader. -- [nu_plugin_from_parquet](https://github.com/fdncred/nu_plugin_from_parquet): A plugin to parse parquet files into nushell data structures. - [nu_plugin_bio](https://github.com/Euphrasiologist/nu_plugin_bio): A bioinformatics plugin for nushell. -- [nu_plugin_regex](https://github.com/fdncred/nu_plugin_regex): A regular expressions plugin for nushell. -- [nu_plugin_template](https://github.com/fdncred/nu_plugin_template): A `cargo-generate` template for making it easier to create nushell plugins. -- [nu_plugin_plist](https://github.com/ayax79/nu_plugin_plist): A plist plugin for nushell. -- [nu_plugin_plot](https://github.com/Euphrasiologist/nu_plugin_plot): A terminal plotting plugin for nushell. -- [nu_plugin_from_hdf5](https://github.com/Berrysoft/nu_plugin_from_hdf5): A plugin to parse HDF5 files into nushell record. -- [nu_plugin_from_beancount](https://github.com/jcornaz/nu_plugin_from_beancount): A nushell extension to load a beancount file into nu structured data. -- [nu_plugin_from_bencode](https://github.com/bluk/nu_plugin_from_bencode): A converter plugin from the bencode format for Nushell. +- [nu_plugin_clipboard](https://github.com/FMotalleb/nu_plugin_clipboard): A nushell plugin to copy text into clipboard or get text from it. +- [nu_plugin_dbus](https://github.com/devyn/nu_plugin_dbus): Nushell plugin for interacting with D-Bus. +- [nu_plugin_dcm](https://github.com/realcundo/nu_plugin_dcm): A nushell plugin to parse Dicom files. +- [nu_plugin_desktop_notifications](https://github.com/FMotalleb/nu_plugin_desktop_notifications): A nushell plugin to send desktop notifications. - [nu_plugin_dialog](https://github.com/Trivernis/nu-plugin-dialog): A nushell plugin for user interaction. +- [nu_plugin_dns](https://github.com/dead10ck/nu_plugin_dns): DNS utility for nushell. +- [nu_plugin_dpktable](https://github.com/pdenapo/nu_plugin_dpkgtable.git): Gets a table of all known packages in a Debian GNU/Linux system. +- [nu_plugin_emoji](https://github.com/fdncred/nu_plugin_emoji): A nushell plugin that makes finding and printing emojis easy in nushell. +- [nu_plugin_file](https://github.com/fdncred/nu_plugin_file): A nushell plugin that will inspect a file and return information based on it's magic number. - [nu_plugin_formats](https://crates.io/crates/nu_plugin_formats): A nushell plugin for from eml, ics, ini, vcf. -- [nu_plugin_dcm](https://github.com/realcundo/nu_plugin_dcm): A nushell plugin to parse Dicom files. +- [nu_plugin_from_beancount](https://github.com/jcornaz/nu_plugin_from_beancount): A nushell extension to load a beancount file into nu structured data. +- [nu_plugin_from_bencode](https://github.com/bluk/nu_plugin_from_bencode): A converter plugin from the bencode format for Nushell. +- [nu_plugin_from_hdf5](https://github.com/Berrysoft/nu_plugin_from_hdf5): A plugin to parse HDF5 files into nushell record. +- [nu_plugin_from_parquet](https://github.com/fdncred/nu_plugin_from_parquet): A plugin to parse parquet files into nushell data structures. +- [nu_plugin_from_sse](https://github.com/cablehead/nu_plugin_from_sse): Nushell plugin to parse a stream of HTTP server sent events. +- [nu_plugin_gstat](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gstat): Show the git working tree status. - [nu_plugin_hcl](https://github.com/Yethal/nu_plugin_hcl): A Hashicorp Configuration Language plugin for nushell. -- [nu_plugin_json_path](https://github.com/fdncred/nu_plugin_json_path): A nushell plugin for parsing json that uses the json path specification. -- [nu_plugin_str_similarity](https://github.com/fdncred/nu_plugin_str_similarity): A nushell plugin that helps you calculate the edit distance between two strings using a variety of algorithms. -- [nu_plugin_bexpand](https://codeberg.org/Taywee/nu-plugin-bexpand): Bash style brace expansion for nushell. - [nu_plugin_highlight](https://github.com/cptpiepmatz/nu-plugin-highlight): 🌈 A nushell plugin for syntax highlighting. -- [nu_plugin_emoji](https://github.com/fdncred/nu_plugin_emoji): A nushell plugin that makes finding and printing emojis easy in nushell. +- [nu_plugin_hmac](https://github.com/fnuttens/nu_plugin_hmac): HMAC sealing for nushell. +- [nu_plugin_image](https://github.com/FMotalleb/nu_plugin_image): A nushell plugin to open png images in the shell and save ansi string as images. +- [nu_plugin_inc](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc): Plugin to increment semantic versioning strings. +- [nu_plugin_json_path](https://github.com/fdncred/nu_plugin_json_path): A nushell plugin for parsing json that uses the json path specification. - [nu_plugin_kdl](https://github.com/amtoine/nu_plugin_kdl): A plugin to add KDL support to Nushell. -- [nu_plugin_file](https://github.com/fdncred/nu_plugin_file): A nushell plugin that will inspect a file and return information based on it's magic number. -- [nu_plugin_dns](https://github.com/dead10ck/nu_plugin_dns); DNS utility for nushell. +- [nu_plugin_msgpack](https://github.com/hulthe/nu_plugin_msgpack): Nushell plugin for converting to and from msgpack. +- [nu_plugin_net](https://crates.io/crates/nu_plugin_net): List network interfaces on any platform. +- [nu_plugin_periodic_table](https://crates.io/crates/nu_plugin_periodic_table): A periodic table of elements plugin. +- [nu_plugin_plist](https://github.com/ayax79/nu_plugin_plist): A plist plugin for nushell. +- [nu_plugin_plot](https://github.com/Euphrasiologist/nu_plugin_plot): A terminal plotting plugin for nushell. +- [nu_plugin_pnet](https://github.com/fdncred/nu_plugin_pnet): Same as above but named `pnet` as to not conflict with Windows `net` built-in. +- [nu_plugin_port_list](https://github.com/FMotalleb/nu_plugin_port_list): A nushell plugin to list all active connections. +- [nu_plugin_port_scan](https://github.com/FMotalleb/nu_plugin_port_scan): A nushell plugin for scanning ports on a target. +- [nu_plugin_prometheus](https://github.com/drbrain/nu_plugin_prometheus): Prometheus querying for nushell. +- [nu_plugin_qr_maker](https://github.com/FMotalleb/nu_plugin_qr_maker): A nushell plugin to create qr code in terminal. +- [nu_plugin_query](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_query): Query json, xml and web pages. +- [nu_plugin_regex](https://github.com/fdncred/nu_plugin_regex): A regular expressions plugin for nushell. +- [nu_plugin_semver](https://github.com/abusch/nu_plugin_semver): A Nushell plugin to manipulate SemVer versions. +- [nu_plugin_str_similarity](https://github.com/fdncred/nu_plugin_str_similarity): A nushell plugin that helps you calculate the edit distance between two strings using a variety of algorithms. +- [nu_plugin_template](https://github.com/fdncred/nu_plugin_template): A `cargo-generate` template for making it easier to create nushell plugins. +- [nu_plugin_ulid](https://github.com/lizclipse/nu_plugin_ulid): A nushell plugin that adds various ulid commands. +- [nu_plugin_units](https://github.com/JosephTLyons/nu_plugin_units): A Nushell plugin for easily converting between common units. +- [nu_plugin_skim](https://github.com/idanarye/nu_plugin_skim): A Nushell plugin that provides a version of [skim](https://github.com/lotabout/skim) that can handle structured Nushell data for MacOS and Linux. +- [nu_plugin_plist](https://github.com/ainvaltin/nu_plugin_plist): Nushell plist and base85 plugin implemented in Go using [nu-plugin](https://github.com/ainvaltin/nu-plugin). + +> If the shell freezes while registering the command, that means the plugin is using an older Nu version no longer compatible with your current version. Consider bumping the Nu version to the latest in the `cargo.toml`, (may lead to breaking the script). -> If the shell freezes while registering the command, that means the plugin is using an older Nu version no longer compatible with your currect version. Consider bumping the Nu version to the latest in the `cargo.toml`, (may lead to breaking the script). +> To check the Nushell compatibility of each plugin you can check the [plugin_details.md](https://github.com/nushell/awesome-nu/blob/main/plugin_details.md) +>> * ✅ it uses the latest version +>> * ⚠️ it does not use the latest version but it may work +>> * ⛔ plugin uses a deprecated API (cannot be compiled) or deprecated signature (Nushell cannot interact with them) + +> In order to add your own plugin please fork this repository and add it to the list above and the list of plugins in [config.yaml](https://github.com/nushell/awesome-nu/blob/main/config.yaml) and then send a Pull Request. ## Scripts You can find some examples about how to create and use scripts in the [Nushell Scripts](https://www.nushell.sh/book/scripts.html) page. @@ -48,7 +76,11 @@ You can find some examples about how to create and use scripts in the [Nushell S - [math_functions](https://github.com/nushell/nu_scripts/blob/main/modules/maths/math_functions.nu): Math functions for doing things like `factorial`, `root`. - [wolframalpha](https://github.com/nushell/nu_scripts/blob/main/sourced/api_wrappers/wolframalpha.nu): WolframAlpha API wrapper. - [packer.nu](https://github.com/Jan9103/packer.nu): A packer.nvim inspired package-manager for NuShell. -- [terraform-importer.nu](https://github.com/Yethal/terraform-importer): Automatically import resources into your Terraform state +- [terraform-importer.nu](https://github.com/Yethal/terraform-importer): Automatically import resources into your Terraform state. +- [npup.nu](https://github.com/fj0r/npup): Puppet based on nushell. +- [comma.nu](https://github.com/fj0r/comma.nu): Task and test runner of nu script. +- [wi](https://github.com/phoenixr-codes/wi): A linguist wrapper for the terminal. +- [refreshenv](https://github.com/Sanceilaks/nu-refreshenv-win): Refresh PATH on Windows like in chocolatey ## Custom Completions You can find some examples about how to create and use custom completions in the [Nushell Custom Completions](https://www.nushell.sh/book/custom_completions.html) page. @@ -65,14 +97,25 @@ Other tools that work with or within the nu language ecosystem. - [zoxide](https://github.com/ajeetdsouza/zoxide): A smarter cd command, inspired by z and autojump. - [oh-my-posh](https://ohmyposh.dev/docs/installation/prompt): A prompt theme engine for any shell. - [virtualenv](https://github.com/pypa/virtualenv): Provides support for creating lightweight Python "virtual environments". -- [ansible](https://github.com/Yethal/ansible-role-nushell): Ansible role that installs nushell on your server +- [ansible](https://github.com/Yethal/ansible-role-nushell): Ansible role that installs nushell on your server. - [github action](https://github.com/marketplace/actions/setup-nu): A GitHub action that runs nushell in your CI. +- [setup-mooonbit Action](https://github.com/hustcer/setup-moonbit): A GitHub action that sets up the Moonbit environment powered by Nushell. +- [setup-bend Action](https://github.com/hustcer/setup-bend): A GitHub action that sets up the Bend environment powered by Nushell and with cache support. - [nix flake](https://git.sr.ht/~mangoiv/nu-shell.nix): A [`nix`](https://nixos.org/) flake that outputs `nushell` packages, docs and tests as well as a `devShell` for developing `nushell`. -- [atuin](https://github.com/ellie/atuin): 🐢 Magical shell history +- [atuin](https://github.com/ellie/atuin): 🐢 Magical shell history. - [jc](https://github.com/kellyjonbrazil/jc): A collection of parsers for common unix tools that outputs JSON for easy import into nushell with `from json`. - [clap_complete_nushell](https://github.com/clap-rs/clap/tree/master/clap_complete_nushell): A way to generate completions for clap based CLIs. -- [Nuenv](https://determinate.systems/posts/nuenv): An experimental Nushell environment for Nix +- [Nuenv](https://determinate.systems/posts/nuenv): An experimental Nushell environment for Nix. - [Dorothy](https://github.com/bevry/dorothy): 🧙‍♀️ Bring your dotfile commands and configuration to any shell, including Nu, Fish, Zsh, Bash. +- [bru](https://github.com/selfagency/bru): A Nushell wrapper for Homebrew. +- [nunvm](https://github.com/Yakiyo/nunvm): A cross-platform nvm clone written in nushell. +- [nu-stats](https://github.com/Nushell101/nu-stats): Nushell history tools. +- [Direnv](https://github.com/direnv/direnv/blob/master/docs/hook.md#nushell): unclutter your .profile. +- [nuPHP](https://github.com/mikayla-maki/nuPHP): Nu personal homepage webserver. +- [broot](https://github.com/Canop/broot): A new way to see and navigate directory trees. +- [nur](https://github.com/ddanier/nur): A taskrunner based on nu shell. +- [pspg](https://github.com/okbob/pspg): A postgres pager that integrates in nushell. +- [mise](https://mise.jdx.dev/): A development environment setup tool (dev tools, env vars, task runner) that integrates with Nushell. ## Editor Extensions Plugins and Extensions that you can use in other text editors @@ -81,6 +124,12 @@ Plugins and Extensions that you can use in other text editors - [nvim plugin](https://github.com/LhKipp/nvim-nu): A nvim pluging for nushell. - [helix](https://github.com/helix-editor/helix): The helix editor also uses tree-sitter queries and are integrated into it now. - [visual studio code](https://github.com/nushell/vscode-nushell-lang): The official nushell visual studio code extension. Also available on the [Microsoft Marketeplace](https://marketplace.visualstudio.com/items?itemName=TheNuProjectContributors.vscode-nushell-lang) and within visual studio code itself. -- [Sublime Text](https://github.com/kurokirasama/nushell_sublime_syntax): A Sublime Text plugin for Nushell. +- [Sublime Text](https://github.com/kurokirasama/nushell_sublime_syntax): Nushell syntax highlight for sublime text. - [Emacs](https://github.com/mrkkrp/nushell-mode): Emacs major mode for Nushell scripts. -- [Sublime Text](https://github.com/stevenxxiu/sublime_text_nushell): A Sublime Text pluging for Nushell. +- [Sublime Text](https://github.com/stevenxxiu/sublime_text_nushell): Sublime Text Nushell Package. +- [vim plugin](https://github.com/elkasztano/nushell-syntax-vim): Nushell syntax highlighting for Vim. +- [Nushell LSP](https://github.com/nushell/nushell/tree/main/crates/nu-lsp): The official Nushell LSP. + +## Reedline Integrations +Applications that have done a nice job using [reedline](https://github.com/nushell/reedline) +- [Glaredb](https://github.com/GlareDB/glaredb): An analytics DBMS for distributed data. diff --git a/action.nu b/action.nu new file mode 100644 index 0000000..777f0aa --- /dev/null +++ b/action.nu @@ -0,0 +1,276 @@ +#!/usr/bin/nu + + +export module utils { + # split string with given seperator + export def "str explode" [ + separator: string, # `character` + --trim-end, # removes character if seen at the end of the given string + ]: string -> list { + let trimmed = if $trim_end { + $in | str trim --right --char $separator + } else { + $in + } + $trimmed | split row $separator + } +} + +export module version { + # compares input with an other integer + # if input > other => 1 + # if input < other => -1 + # if input == other => 0 + def "int compare" [ + other: int + ]: int -> int { + let current = $in + if ($current > $other) { + return 1 + } else if ($current < $other) { + return ('-1' | into int) + } else { + return 0 + } + } + + # compare given input with an other value + # if input > other => 1 + # if input < other => -1 + # if input == other => 0 + export def "compare to" [ + other: string + ]: string -> int { + let $current = $in + match ($current | get major | int compare ($other | get major)) { + 0 => { + return ($current | get minor | int compare ($other | get minor)) + } + $a => { + return $a + } + } + } + + # get major version from version number + # 0.90 -> 0 + # 1.90.0 -> 1 + # 15.0.0 -> 15 + def "get major" []: string -> int { + let version = $in + use utils "str explode" + return ($version | str explode '.' | first | if ($version | str starts-with '^') { $in | str substring 1.. } else { $in } | into int) + } + + # get major version from version number + # 0.90 -> 90 + # 1.14.4 -> 14 + # 15.65.15 -> 65 + # ^15.65 -> 65 + def "get minor" []: string -> int { + let version = $in + use utils "str explode" + return ($version | str explode '.' | $in.1 | into int) + } +} + +export module plugin-list { + + # converts repository url into raw download link for Cargo.toml + def "get-raw-toml-address" [ + url: string, # github repository url (e.g. https://github.com/FMotalleb/nu_plugin_port_scan) + branch: string # branch name (e.g. main) + ]: nothing -> record { + let url: record = ($url | url parse) + use utils "str explode" + match $url.host { + 'github.com' => { + if ( ($url.path | str explode '/' --trim-end | length) > 3 ) { + return ($url + | upsert host raw.githubusercontent.com + | upsert path ($url.path + | str replace $"tree/($branch)" $branch + | str explode '/' --trim-end + | append Cargo.toml + | str join '/')) + } + return ($url + | upsert host raw.githubusercontent.com + | upsert path ($url.path + | str explode '/' --trim-end + | append $branch + | append Cargo.toml + | str join '/')) + }, + 'gitlab.com' => { + return ($url + | upsert path ($url.path + | str explode '/' --trim-end + | append - + | append raw + | append $branch + | append Cargo.toml + | str join '/')) + }, + 'codeberg.org' => { + return ($url + | upsert path ($url.path + | str explode '/' --trim-end + | append raw/branch + | append $branch + | append Cargo.toml + | str join '/')) + } + _ => { + # TODO add error + } + } + + return $url + } + + # download toml file from repository + def "get-toml" [ + branch: string # branch name (e.g. main) + ]: string -> record { + let git_repo = ($in | str replace --regex ".git$" "") # github repository url (e.g. https://github.com/FMotalleb/nu_plugin_port_scan) + let toml_file_address: string = (get-raw-toml-address $git_repo $branch | url join) + try { + return (http get --raw $toml_file_address | from toml) + } catch { + return {} + } + } + + # checks if given input is string or not + # TODO maybe a better way? + def is-str []: any -> bool { + return (($in | to json | str trim -c '"') == $in) + } + # if input is string will return itself otherwise think its record and will return for $in.version + # TODO handle error + def "get self or version" []: record -> string , string -> string { + let input = $in + + if ($input | is-str) { + return $input; + } else if ($input.version? | is-empty) { + return "0.0.0" + } else { + return $input.version + } + + } + + # map `Cargo.toml` file to a plugin entry record + def "map-toml-to-entry" [ + repository: string + ]: record -> record { + let toml: record = $in + if ([$toml.package?, $toml.dependencies?] | all {|i| $i != null}) { + return { + name: $"[($toml.package.name)]\(($repository)\)" + version: $toml.package.version + description: $toml.package.description? + plugin: ($toml.dependencies.nu-plugin + | get self or version) + protocol: ($toml.dependencies.nu-protocol + | get self or version) + } + } else { + return { + name: $"issue in config file for \(($repository)\)" + version: "0.0" + description: "" + plugin: "0.0" + protocol: "0.0" + } + } + + } + + def "get icon" []: int -> string { + match $in { + -1 => { + return ⚠️ + } + _ => { + return ✅ + } + } + } + + # adds an icon to version numbers of `plugin` and `protocol` version numbers of the plugin + # if they are less than the minimum version -> add ⛔ icon before it + # if versions are as the same as latest version -> add ✅ icon + # otherwise -> add ⚠️ icon + def "set status" [ + plugin: string, # latest nu-plugin version + protocol: string, # latest nu-protocol version + min_plugin: string, # minimum nu-plugin version possible + min_protocol: string # minimum nu-protocol version possible + ]: record -> record { + let input = $in + use version "compare to" + match [$input.plugin?, $input.protocol?,] { + [$plugin_version,$protocol_version] if ($plugin_version != null and $protocol_version != null) => { + if ((($plugin_version | compare to $min_plugin) == -1) or ($protocol_version | compare to $min_protocol) == -1) { + return ($input + | upsert plugin $"⛔($plugin_version)" + | upsert protocol $"⛔($protocol_version)" + ) + } + + return ($input + | upsert plugin $"($plugin_version | compare to $plugin | get icon)($plugin_version)" + | upsert protocol $"($protocol_version | compare to $protocol | get icon)($protocol_version)" + ) + } + _ => { + return $input + } + } + + } + + # crete a table entry from given plugin record + def "make entry" []: record -> record { + let item = $in + match $item.language { + "rust" => { + return ($item.repository.url | get-toml $item.repository.branch| map-toml-to-entry $item.repository.url) + } + _ => { + return {} + } + } + } + + # creates a table of plugins from given plugin list yaml file + export def create-table [] : record -> table { + let config: record = $in + let plugin_version = ($config.core.plugin_repository + | get-toml main + | get package.version + | get self or version) + + let protocol_version = ($config.core.protocol_repository + | get-toml main + | get package.version + | get self or version) + + let result = $config.plugins + | par-each { |i| $i + | make entry + | if ($i.override? != null) { + $in | merge $i.override + } else { + $in + } + | set status $plugin_version $protocol_version $config.core.minimum_plugin $config.core.minimum_protocol + } + | sort-by name + return $result + } + +} diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..db6b5d8 --- /dev/null +++ b/config.yaml @@ -0,0 +1,284 @@ +core: + minimum_plugin: "0.60.0" + minimum_protocol: "0.60.0" + plugin_repository: https://github.com/nushell/nushell/tree/main/crates/nu-plugin + protocol_repository: https://github.com/nushell/nushell/tree/main/crates/nu-protocol + +plugins: + - name: nu_plugin_periodic_table + language: rust + repository: + url: https://github.com/JosephTLyons/nu_plugin_periodic_table + branch: master + - name: nu_plugin_query + language: rust + repository: + url: https://github.com/nushell/nushell/tree/main/crates/nu_plugin_query + branch: main + - name: nu_plugin_inc + language: rust + repository: + url: https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc + branch: main + - name: nu_plugin_gstat + language: rust + repository: + url: https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gstat + branch: main + - name: nu_plugin_net + language: rust + repository: + url: https://github.com/fennewald/nu_plugin_net + branch: main + - name: nu_plugin_pnet + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_pnet + branch: main + - name: nu_plugin_bin_reader + language: python + repository: + url: https://github.com/WindSoilder/nu_plugin_bin_reader + branch: main + override: + name: "[nu_plugin_bin_reader](https://github.com/WindSoilder/nu_plugin_bin_reader)" + version: "0.0.0" + description: "A high level, general binary data reader." + plugin: "0.0" + protocol: "0.0" + - name: nu_plugin_from_parquet + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_from_parquet + branch: main + - name: nu_plugin_bio + language: rust + repository: + url: https://github.com/Euphrasiologist/nu_plugin_bio + branch: main + - name: nu_plugin_regex + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_regex + branch: main + - name: nu_plugin_template + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_template + branch: main + override: + name: "[nu_plugin_template](https://github.com/fdncred/nu_plugin_template)" + description: A `cargo-generate` template for making it easier to create nushell plugins. + - name: nu_plugin_plist + language: rust + repository: + url: https://github.com/ayax79/nu_plugin_plist + branch: main + - name: nu_plugin_plot + language: rust + repository: + url: https://github.com/Euphrasiologist/nu_plugin_plot + branch: main + - name: nu_plugin_from_hdf5 + language: rust + repository: + url: https://github.com/Berrysoft/nu_plugin_from_hdf5 + branch: master + override: + description: A plugin to parse HDF5 files into nushell record. + - name: nu_plugin_from_beancount + language: rust + repository: + url: https://github.com/jcornaz/nu_plugin_from_beancount + branch: main + - name: nu_plugin_from_bencode + language: rust + repository: + url: https://github.com/bluk/nu_plugin_from_bencode + branch: trunk + - name: nu_plugin_dialog + language: rust + repository: + url: https://github.com/Trivernis/nu-plugin-dialog + branch: main + - name: nu_plugin_formats + language: rust + repository: + url: https://github.com/nushell/nushell/tree/main/crates/nu_plugin_formats + branch: main + - name: nu_plugin_dcm + language: rust + repository: + url: https://github.com/realcundo/nu_plugin_dcm + branch: master + - name: nu_plugin_hcl + language: rust + repository: + url: https://github.com/Yethal/nu_plugin_hcl + branch: main + - name: nu_plugin_json_path + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_json_path + branch: main + - name: nu_plugin_str_similarity + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_str_similarity + branch: main + - name: nu_plugin_bexpand + language: rust + repository: + url: https://codeberg.org/Taywee/nu-plugin-bexpand + branch: main + - name: nu_plugin_highlight + language: rust + repository: + url: https://github.com/cptpiepmatz/nu-plugin-highlight + branch: main + - name: nu_plugin_emoji + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_emoji + branch: main + - name: nu_plugin_kdl + language: rust + repository: + url: https://github.com/amtoine/nu_plugin_kdl + branch: main + - name: nu_plugin_file + language: rust + repository: + url: https://github.com/fdncred/nu_plugin_file + branch: main + - name: nu_plugin_dns + language: rust + repository: + url: https://github.com/dead10ck/nu_plugin_dns + branch: main + - name: nu_plugin_port_scan + language: rust + repository: + url: https://github.com/FMotalleb/nu_plugin_port_scan + branch: main + - name: nu_plugin_port_list + language: rust + repository: + url: https://github.com/FMotalleb/nu_plugin_port_list + branch: main + - name: nu_plugin_audio_hook + language: rust + repository: + url: https://github.com/FMotalleb/nu_plugin_audio_hook + branch: main + - name: nu_plugin_desktop_notifications + language: rust + repository: + url: https://github.com/FMotalleb/nu_plugin_desktop_notifications + branch: main + - name: nu_plugin_clipboard + language: rust + repository: + url: https://github.com/FMotalleb/nu_plugin_clipboard + branch: main + - name: nu_plugin_explore + language: rust + repository: + url: https://github.com/amtoine/nu_plugin_explore + branch: main + override: + description: "A fast structured data explorer for Nushell." + - name: nu_plugin_qr_maker + language: rust + repository: + url: https://github.com/FMotalleb/nu_plugin_qr_maker + branch: main + - name: nu_plugin_msgpack + language: rust + repository: + url: https://github.com/hulthe/nu_plugin_msgpack + branch: master + - name: nu_plugin_bash_env + language: bash + repository: + url: https://github.com/tesujimath/nu_plugin_bash_env + branch: master + override: # override any field in the result record (do not use unless you have to `like the plugin is written in Python`) + name: "[nu_plugin_bash_env](https://github.com/tesujimath/nu_plugin_bash_env)" + version: "0.11.0" + description: "A Bash environment plugin for Nushell." + plugin: "0.95.0" + protocol: "0.95.0" + - name: nu_plugin_units + language: rust + repository: + url: https://github.com/JosephTLyons/nu_plugin_units + branch: main + - name: nu_plugin_image + language: rust + repository: + url: https://github.com/FMotalleb/nu_plugin_image + branch: main + - name: nu_plugin_semver + language: rust + repository: + url: https://github.com/abusch/nu_plugin_semver + branch: main + - name: nu_plugin_dbus + language: rust + repository: + url: https://github.com/devyn/nu_plugin_dbus + branch: main + - name: nu_plugin_dpkgtable + language: rust + repository: + url: https://github.com/pdenapo/nu_plugin_dpkgtable + branch: main + - name: nu_plugin_from_sse + language: rust + repository: + url: https://github.com/cablehead/nu_plugin_from_sse + branch: main + - name: nu_plugin_ulid + language: rust + repository: + url: https://github.com/lizclipse/nu_plugin_ulid + branch: master + - name: nu_plugin_hmac + language: rust + repository: + url: https://github.com/fnuttens/nu_plugin_hmac + branch: main + - name: nu_plugin_prometheus + language: rust + repository: + url: https://github.com/drbrain/nu_plugin_prometheus + branch: main + - name: nu_plugin_skim + language: rust + repository: + url: https://github.com/idanarye/nu_plugin_skim + branch: main + - name: nu_plugin_plist + language: go + repository: + url: https://github.com/ainvaltin/nu_plugin_plist + branch: main + override: # override any field in the result record (do not use unless you have to `like the plugin is written in Python`) + name: "[nu_plugin_plist](https://github.com/ainvaltin/nu_plugin_plist)" + version: "0.1.0" + description: "Nushell plist and base85 plugin implemented in Go." + plugin: "0.94.0" + protocol: "0.94.0" +# Example +# - name: nu_plugin_bin_reader # the plugins name (mandatory) +# language: python # programming language (mandatory) +# repository: # information of the repository (mandatory) +# url: https://github.com/WindSoilder/nu_plugin_bin_reader # address of the repository (mandatory) (only supports GitHub, GitLab, codeberg) +# branch: main # (mandatory) +# override: # override any field in the result record (do not use unless you have to `like the plugin is written in Python`) +# name: "[nu_plugin_bin_reader](https://github.com/WindSoilder/nu_plugin_bin_reader)" +# version: "0.0.0" +# description: "A high level, general binary data reader." +# plugin: "0.0" +# protocol: "0.0" diff --git a/plugin_details.md b/plugin_details.md new file mode 100644 index 0000000..9bf3405 --- /dev/null +++ b/plugin_details.md @@ -0,0 +1,52 @@ +|name|version|description|plugin|protocol| +|-|-|-|-|-| +|[nu-plugin-bexpand](https://codeberg.org/Taywee/nu-plugin-bexpand)|1.3.5|A brace expansion plugin compatible with Bash for nushell|⚠️0.92|⚠️0.92| +|[nu_plugin_audio_hook](https://github.com/FMotalleb/nu_plugin_audio_hook)|0.2.1|A nushell plugin to make and play sounds|✅0.95|✅0.95| +|[nu_plugin_bash_env](https://github.com/tesujimath/nu_plugin_bash_env)|0.11.0|A Bash environment plugin for Nushell.|✅0.95.0|✅0.95.0| +|[nu_plugin_bin_reader](https://github.com/WindSoilder/nu_plugin_bin_reader)|0.0.0|A high level, general binary data reader.|⛔0.0|⛔0.0| +|[nu_plugin_bio](https://github.com/Euphrasiologist/nu_plugin_bio)|0.85.0|Parse and manipulate common bioinformatic formats in nushell.|⚠️0.85.0|⚠️0.85.0| +|[nu_plugin_clipboard](https://github.com/FMotalleb/nu_plugin_clipboard)|0.95.0|A nushell plugin to copy text into clipboard or get text from it.|✅0.95.0|✅0.95.0| +|[nu_plugin_dbus](https://github.com/devyn/nu_plugin_dbus)|0.8.0|Nushell plugin for communicating with D-Bus|✅0.95.0|✅0.95.0| +|[nu_plugin_dcm](https://github.com/realcundo/nu_plugin_dcm)|0.1.8|A nushell plugin to parse Dicom files|⚠️0.68|⚠️0.68| +|[nu_plugin_desktop_notifications](https://github.com/FMotalleb/nu_plugin_desktop_notifications)|1.2.1|A nushell plugin to send desktop notifications|✅0.95.0|✅0.95.0| +|[nu_plugin_dialog](https://github.com/Trivernis/nu-plugin-dialog)|0.2.0|A nushell plugin for user interaction|⚠️0.86.1|⚠️0.86.1| +|[nu_plugin_dns](https://github.com/dead10ck/nu_plugin_dns)|3.0.2-alpha.1|A DNS utility for nushell|⚠️0.94.2|⚠️0.94.2| +|[nu_plugin_dpkgtable](https://github.com/pdenapo/nu_plugin_dpkgtable)|0.1.0||⚠️0.91.0|⚠️0.91.0| +|[nu_plugin_emoji](https://github.com/fdncred/nu_plugin_emoji)|0.5.0|a nushell plugin called emoji|✅0.95.1|✅0.95.1| +|[nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)|0.95.0|A fast structured data explorer for Nushell.|✅0.95.0|✅0.95.0| +|[nu_plugin_file](https://github.com/fdncred/nu_plugin_file)|0.5.0|a nushell plugin called file|✅0.95.1|✅0.95.1| +|[nu_plugin_formats](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_formats)|0.95.1|An I/O plugin for a set of file formats for Nushell|✅0.95.1|✅0.95.1| +|[nu_plugin_from_beancount](https://github.com/jcornaz/nu_plugin_from_beancount)|2.0.0|A nushell extension to load a beancount file into nu structured data|⚠️0.84.0|⚠️0.84.0| +|[nu_plugin_from_bencode](https://github.com/bluk/nu_plugin_from_bencode)|0.11.0|A Nushell plugin to convert bencode data into Nu structured values.|⚠️0.93|⚠️0.93| +|[nu_plugin_from_hdf5](https://github.com/Berrysoft/nu_plugin_from_hdf5)|0.1.0|A plugin to parse HDF5 files into nushell record.|⚠️0.89|⚠️0.89| +|[nu_plugin_from_parquet](https://github.com/fdncred/nu_plugin_from_parquet)|0.5.0|nu plugin to add parquet support|✅0.95.1|✅0.95.1| +|[nu_plugin_from_sse](https://github.com/cablehead/nu_plugin_from_sse)|0.4.0|Nushell plugin to convert a HTTP server sent event stream to structured data|✅0.95|✅0.95| +|[nu_plugin_gstat](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gstat)|0.95.1|A git status plugin for Nushell|✅0.95.1|✅0.95.1| +|[nu_plugin_hcl](https://github.com/Yethal/nu_plugin_hcl)|0.95.0|A nushell plugin for parsing Hashicorp Configuration Language file format|✅0.95.0|✅0.95.0| +|[nu_plugin_highlight](https://github.com/cptpiepmatz/nu-plugin-highlight)|1.2.0+0.95.0|A nushell plugin for syntax highlighting|✅0.95|✅0.95| +|[nu_plugin_hmac](https://github.com/fnuttens/nu_plugin_hmac)|0.7.0||✅0.95.0|✅0.95.0| +|[nu_plugin_image](https://github.com/FMotalleb/nu_plugin_image)|0.5.2|A nushell plugin to open png images in the shell and save ansi string as images (like tables or ...)|✅0.95.0|✅0.95.0| +|[nu_plugin_inc](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc)|0.95.1|A version incrementer plugin for Nushell|✅0.95.1|✅0.95.1| +|[nu_plugin_json_path](https://github.com/fdncred/nu_plugin_json_path)|0.5.0|a nushell plugin created to parse json files using jsonpath|✅0.95.1|✅0.95.1| +|[nu_plugin_kdl](https://github.com/amtoine/nu_plugin_kdl)|0.83.2|Add support for the KDL data format to Nushell.|⚠️0.83.2|⚠️0.83.2| +|[nu_plugin_msgpack](https://github.com/hulthe/nu_plugin_msgpack)|0.90.1|Commands to convert nushell data to and from MsgPack|⚠️0.90.1|⚠️0.90.1| +|[nu_plugin_net](https://github.com/fennewald/nu_plugin_net)|1.5.0|A nushell plugin for enumerating network interfaces in a platform-agnostic way|⚠️0.94.2|⚠️0.94.2| +|[nu_plugin_periodic_table](https://github.com/JosephTLyons/nu_plugin_periodic_table)|0.2.8|A periodic table of elements plugin for Nushell|⚠️0.94.0|⚠️0.94.0| +|[nu_plugin_plist](https://github.com/ainvaltin/nu_plugin_plist)|0.1.0|Nushell plist and base85 plugin implemented in Go.|⚠️0.94.0|⚠️0.94.0| +|[nu_plugin_plist](https://github.com/ayax79/nu_plugin_plist)|0.94.0|Plist parsing for nushell|⚠️0.94|⚠️0.94| +|[nu_plugin_plot](https://github.com/Euphrasiologist/nu_plugin_plot)|0.91.1|Plot graphs in nushell using numerical lists.|⚠️0.92.2|⚠️0.92.2| +|[nu_plugin_pnet](https://github.com/fdncred/nu_plugin_pnet)|1.7.0|A nushell plugin for enumerating network interfaces in a platform-agnostic way|✅0.95.1|✅0.95.1| +|[nu_plugin_port_list](https://github.com/FMotalleb/nu_plugin_port_list)|1.4.1|A nushell plugin to list all active connections|✅0.95.0|✅0.95.0| +|[nu_plugin_port_scan](https://github.com/FMotalleb/nu_plugin_port_scan)|1.2.1|A nushell plugin for scanning ports on a target|✅0.95.0|✅0.95.0| +|[nu_plugin_prometheus](https://github.com/drbrain/nu_plugin_prometheus)|0.3.0|A nushell plugin for querying prometheus|✅0.95.0|✅0.95.0| +|[nu_plugin_qr_maker](https://github.com/FMotalleb/nu_plugin_qr_maker)|1.1.0|A nushell plugin to create qr code in terminal|⚠️0.94.0|⚠️0.94.0| +|[nu_plugin_query](https://github.com/nushell/nushell/tree/main/crates/nu_plugin_query)|0.95.1|A Nushell plugin to query JSON, XML, and various web data|✅0.95.1|✅0.95.1| +|[nu_plugin_regex](https://github.com/fdncred/nu_plugin_regex)|0.5.0|nu plugin to search text with regex|✅0.95.1|✅0.95.1| +|[nu_plugin_semver](https://github.com/abusch/nu_plugin_semver)|0.5.0|A nushell plugin for dealing with SemVer versions|✅0.95.0|✅0.95.0| +|[nu_plugin_skim](https://github.com/idanarye/nu_plugin_skim)|0.2.0|An `sk` command that can handle Nushell's structured data|✅0.95|✅0.95| +|[nu_plugin_str_similarity](https://github.com/fdncred/nu_plugin_str_similarity)|0.5.0|a nushell plugin called str_similarity|✅0.95.1|✅0.95.1| +|[nu_plugin_template](https://github.com/fdncred/nu_plugin_template)|0.0|A `cargo-generate` template for making it easier to create nushell plugins.|⛔0.0|⛔0.0| +|[nu_plugin_ulid](https://github.com/lizclipse/nu_plugin_ulid)|0.5.0|A nushell plugin that adds various ulid commands|✅0.95.0|✅0.95.0| +|[nu_plugin_units](https://github.com/JosephTLyons/nu_plugin_units)|0.1.1|A Nushell plugin for easily converting between common units|⚠️0.94.0|⚠️0.94.0| + +last update at `2024-07-10 03:12:03 +00:00`