mirror of
https://github.com/RGBCube/nu_scripts
synced 2025-07-31 14:17:45 +00:00
368 lines
13 KiB
Text
368 lines
13 KiB
Text
def signatures [] {
|
|
let sig = ([
|
|
{ name: "nu-nu"
|
|
description: "signature test for nu-nu"
|
|
extra_description: ""
|
|
required_positional: [
|
|
{
|
|
name: "a"
|
|
desc: "required int value"
|
|
shape: "Int"
|
|
var_id: None
|
|
},
|
|
{
|
|
name: "b"
|
|
desc: "required string value"
|
|
shape: "String"
|
|
var_id: None
|
|
}
|
|
]
|
|
optional_positional: [
|
|
{
|
|
name: "opt"
|
|
desc: "optional number"
|
|
shape: "Int"
|
|
var_id: None
|
|
}
|
|
]
|
|
rest_positional: {
|
|
name: "rest"
|
|
desc: "rest value string"
|
|
shape: "String"
|
|
var_id: None
|
|
}
|
|
named: [
|
|
{
|
|
long: "help"
|
|
short: "h"
|
|
arg: None
|
|
required: false
|
|
desc: "display this help message"
|
|
var_id: None
|
|
}
|
|
{
|
|
long: "flag"
|
|
short: "f"
|
|
arg: None
|
|
required: false
|
|
desc: "a flag for the signature"
|
|
var_id: None
|
|
}
|
|
{
|
|
long: "named"
|
|
short: "n"
|
|
arg: "String"
|
|
required: false
|
|
desc: "named string"
|
|
var_id: None
|
|
}
|
|
]
|
|
is_filter: false
|
|
creates_scope: false
|
|
category: "Experimental"
|
|
}
|
|
])
|
|
|
|
let jsonr = ($sig | to json)
|
|
$jsonr
|
|
}
|
|
|
|
def process_call [plugin_call] {
|
|
let ret = ({
|
|
Value: {
|
|
List: {
|
|
vals: [
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: {start: 0, end: 1}
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: {start: 0, end: 1}
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: {start: 0, end: 1}
|
|
}
|
|
}
|
|
],
|
|
span: {start: 0, end: 1}
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: {start: 0, end: 1}
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 1,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 2,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 2,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 4,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 3,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 6,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 4,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 8,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 5,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 10,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 6,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 12,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 7,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 14,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 8,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 16,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Record: {
|
|
cols: ["one", "two", "three"],
|
|
vals: [
|
|
{
|
|
Int: {
|
|
val: 0,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 9,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
{
|
|
Int: {
|
|
val: 18,
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
],
|
|
span: { start: 0, end: 1 }
|
|
}
|
|
}
|
|
})
|
|
|
|
let jsonr = ($ret | to json)
|
|
$jsonr
|
|
}
|
|
|
|
def plugin [input] {
|
|
let plugin_call = $input
|
|
if $plugin_call == "Signature" {
|
|
signatures
|
|
} else if "CallInfo" in $plugin_call {
|
|
process_call $plugin_call
|
|
} else {
|
|
let error = ({
|
|
Error: {
|
|
label: "ERROR from plugin",
|
|
msg: "error message pointing to call head span",
|
|
span: {start: 0, end: 1},
|
|
}
|
|
})
|
|
|
|
let jsonr = ($error | to json)
|
|
$jsonr
|
|
}
|
|
}
|
|
|
|
def main [] {
|
|
let params = (each {|param| echo $param })
|
|
plugin $params
|
|
}
|