1
Fork 0
mirror of https://github.com/RGBCube/nu_scripts synced 2025-07-31 14:17:45 +00:00
nu_scripts/modules/weather/nu.nu
2024-12-08 07:26:25 -06:00

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
}