diff --git a/go.mod b/go.mod index 5f4538f..d184b8b 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,11 @@ module github.com/semperos/ari -go 1.21 +go 1.22 -toolchain go1.22.0 +toolchain go1.22.7 require ( - codeberg.org/anaseto/goal v0.44.1-0.20241023153331-ed11e6819757 + codeberg.org/anaseto/goal v0.44.1-0.20241030090847-5b04f1cc2a18 github.com/charmbracelet/lipgloss v0.13.1 github.com/go-resty/resty/v2 v2.15.3 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index 6ad03cc..fefec4d 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -codeberg.org/anaseto/goal v0.44.1-0.20241023153331-ed11e6819757 h1:6Pw/aGY5E458q2RoDLyNWCALOi20JArr1Dl3xrmR+mE= -codeberg.org/anaseto/goal v0.44.1-0.20241023153331-ed11e6819757/go.mod h1:oipi4mkQiwXW9Td2IxNhuMV0Ewq4obs6EvkqpyZ6qMs= +codeberg.org/anaseto/goal v0.44.1-0.20241030090847-5b04f1cc2a18 h1:FnG1u/we4Drd9ahNqSP4IOPGN3XQj08XNLeqUesH0/w= +codeberg.org/anaseto/goal v0.44.1-0.20241030090847-5b04f1cc2a18/go.mod h1:uSilOn+ZWioD+gG+3OopP090Fth5H47V/TU9ziI++CM= github.com/apache/arrow/go/v17 v17.0.0 h1:RRR2bdqKcdbss9Gxy2NS/hK8i4LDMh23L6BbkN5+F54= github.com/apache/arrow/go/v17 v17.0.0/go.mod h1:jR7QHkODl15PfYyjM2nU+yTLScZ/qfj7OSUZmJ8putc= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= diff --git a/vendor-goal/README.md b/vendor-goal/README.md index 09f3c23..a0ec7ca 100644 --- a/vendor-goal/README.md +++ b/vendor-goal/README.md @@ -1,3 +1,3 @@ # Vendored Goal Code from Goal Project -Pulled from Goal at Git commit: `ed11e68197578900a17f928afc3ccfc6bebe5557` +Pulled from Goal at Git commit: `5b04f1cc2a1827b9a149795cc7c37afeaf34a9d6` diff --git a/vendor-goal/os.goal b/vendor-goal/os.goal index 6ee9e1a..ae3fea4 100644 --- a/vendor-goal/os.goal +++ b/vendor-goal/os.goal @@ -4,7 +4,7 @@ / functions are only officially tested on Void Linux and OpenBSD. / GOALLIB is a file system value for env"GOALLIB" (at startup). -GOALLIB:{?["e"~@x;x;dirfs x]}@env"GOALLIB" +GOALLIB:{dirfs 'x}@env"GOALLIB" / PS represents the path separator. PS:?["windows"~rt.get"os";"\\";"/"] / We define some common portable error messages as globals for convenience. diff --git a/vendored/README.md b/vendored/README.md index 19e7f53..e0e5d0c 100644 --- a/vendored/README.md +++ b/vendored/README.md @@ -1,3 +1,3 @@ # Vendored Go Code from Goal Project -Pulled from Goal at Git commit: `ed11e68197578900a17f928afc3ccfc6bebe5557` +Pulled from Goal at Git commit: `5b04f1cc2a1827b9a149795cc7c37afeaf34a9d6` diff --git a/vendored/help/help.go b/vendored/help/help.go index 0f45a98..72456cf 100644 --- a/vendored/help/help.go +++ b/vendored/help/help.go @@ -16,6 +16,6 @@ const helpAdverbs = "ADVERBS HELP\nf'x each #'(4 5;6 7 8) → 2 3\nx F'y const helpTime = "TIME HELP\ntime cmd time command with current time\ncmd time t time command with time t\ntime[cmd;t;fmt] time command with time t in given format\ntime[cmd;t;fmt;loc] time command with time t in given format and location\n\nTime t should consist either of integers or strings in the given format (\"unix\"\nis the default for integers and RFC3339 layout \"2006-01-02T15:04:05Z07:00\" is\nthe default for strings), with optional location (default is \"UTC\"). See FAQ\nfor information on layouts, locations, and date calculations. Supported values\nfor cmd are as follows:\n\n cmd (s) result (type) fmt\n ------- ------------- ---\n \"clock\" hour, minute, second (I)\n \"date\" year, month, day (I) yes\n \"day\" day number (i)\n \"hour\" 0-23 hour (i)\n \"minute\" 0-59 minute (i)\n \"month\" 0-12 month (i)\n \"second\" 0-59 second (i)\n \"unix\" unix epoch time (i) yes\n \"unixmicro\" unix (microsecond version) (i) yes\n \"unixmilli\" unix (millisecond version) (i) yes\n \"unixnano\" unix (nanosecond version) (i) yes\n \"week\" year, week (I)\n \"weekday\" 0-7 weekday starting from Sunday (i)\n \"year\" year (i)\n \"yearday\" 1-365/6 year day (i)\n \"zone\" name, offset in seconds east of UTC (s;i)\n format (s) format time using given layout (s) yes\n" -const helpRuntime = "RUNTIME HELP\nrt.get s returns runtime information named by s:\n \"!\" names of globals (S)\n \"kw\" names of verbal keywords (S)\n \"loc\" current eval location (s)\n \"os\" operating system (s) (Go’s runtime.GOOS)\n \"pfx\" current eval prefix for globals (s)\n \"v\" interpreter’s version (s)\nrt.get[\"@\";x] dict with internal info about x (for debug purposes only)\nrt.log x like :[x] but logs string representation of x (same as \\x)\nrt.seed i set non-secure pseudo-rand seed to i (used by the ? verb)\nrt.time[s;i] eval s for i times (default 1), return average time (ns)\nrt.time[f;y;i] call f. y for i times (default 1), return average time (ns)\nrt.try[f;y;f] same as .[f;y;f] but the handler receives an error dict\n ..[msg:s;err:s] where msg contains the whole error stack trace\n" +const helpRuntime = "RUNTIME HELP\nrt.get s returns runtime information named by s:\n \"!\" names of globals (S)\n \"kw\" names of verbal keywords (S)\n \"loc\" current eval location (s)\n \"os\" operating system (s) (Go’s runtime.GOOS)\n \"pfx\" current eval prefix for globals (s)\n \"v\" interpreter’s version (s)\nrt.get[\"@\";x] dict with internal info about x (for debug purposes only)\nrt.log x like :[x] but logs string representation of x (same as \\x)\nrt.seed i set non-secure pseudo-rand seed to i (for repeatability in ?)\nrt.time[s;i] eval s for i times (default 1), return average time (ns)\nrt.time[f;y;i] call f. y for i times (default 1), return average time (ns)\nrt.try[f;y;f] same as .[f;y;f] but the handler receives an error dict\n ..[msg:s;err:s] where msg contains the whole error stack trace\n" -const helpIO = "IO/OS HELP\nabspath s return an absolute representation of path or joined path elements\nchdir s change current working directory to s\nclose h flush any buffered data, then close handle h\ndirfs s return a read-only file system value fs, rooted at directory s,\n usable as left argument in glob, import, open, read, stat\n fs subfs dir returns the subtree rooted at fs’ dir\nenv s return value of environment variable s, or an error if unset\n return a dict representing the whole environment if s~\"\"\nflush h flush any buffered data for handle h\nglob s return file names matching glob pattern(s) (ignores stat errors)\nimport s read/eval wrapper roughly equivalent to eval[src;path;pfx] where:\n s with extension s without extension\n ---------------- ---------------------------------\n pfx~basename s pfx~sub[\"/\";\".\"]s\n path~s path~s+\".goal\"\n src~read s src~(dirfs env\"GOALLIB\")read path\nmkdir s create new directory named s (parent must already exist)\nopen s open path s for reading, returning a handle h\nprint x print\"Hello, world!\\n\" (uses implicit $x for ~(@x)in\"sSe\")\nread h read from handle h until EOF or an error occurs\nread s read file named s into string lines:=-read\"/path/to/file\"\n or dict ..[dir:I;name:S] if s is a directory\nremove s remove the named file or empty directory\nrun s run command s or S (with arguments) run\"pwd\" run\"ls\" \"-l\"\n inherits stdin and stderr, returns its standard output or an error\n dict ..[msg:s;code:i;out:s]\nsay x same as print, but appends a newline say!5\nshell s same as run, but through \"/bin/sh\" (unix systems only) shell\"ls -l\"\nstat x returns dict ..[dir:i;mtime:i;size:i] (for filehandle h or path s)\n\nx env s set environment variable x to s\nx env 0 unset environment variable x, or clear environment if x~\"\"\nx import s same as import s, but using prefix x for globals\nx open s open path s with mode x in \"r\" \"w\" \"a\" (file read/write/append)\n or pipe from or to command s or S with \"pr\" \"pw\" (pipe read/write)\n or read/write string with \"sr\" \"sw\" (see FAQ for details)\n returns handle h that may be called on:\n \"buf\" enable buffering (i) (modes \"w\" \"a\")\n \"dir\" whether file is dir (i) (mode \"r\")\n \"mode\" handle’s mode (s) (available for all modes)\n \"name\" file’s name (s) (modes \"r\" \"w\" \"a\")\n \"nobuf\" disable buffering (i) (modes \"w\" \"a\")\n \"s\" get string (s) (modes \"sr\" \"sw\")\n \"sync\" file sync (i or e) (modes \"w\" \"a\")\n open and run also accept x as a dict: see FAQ for advanced usage\nx print y print y to handle/path x \"/path/to/file\"print\"content\"\ni read h read i bytes from reader h or until EOF, or an error occurs\ns read h read from reader h until 1-byte s, EOF, or an error occurs\nx rename y renames (moves) old path x (s) to new path y (s)\nx run s same as run s but with input string x as stdin\nx say y same as print, but appends a newline\n\nARGS command-line arguments, starting with script name\nSTDIN standard input filehandle (mode \"r\", buffered)\nSTDOUT standard output filehandle (mode \"w\", buffered)\nSTDERR standard error filehandle (mode \"w\", unbuffered)\n" +const helpIO = "IO/OS HELP\nabspath s return an absolute representation of path or joined path elements\nchdir s change current working directory to s\nclose h flush any buffered data, then close handle h\ndirfs s return a read-only file system value fs, rooted at directory s,\n usable as left argument in glob, import, open, read, stat\n fs subfs dir returns the subtree rooted at fs’ dir\nenv s return value of environment variable s, or an error if unset\n return a dict representing the whole environment if s~\"\"\nflush h flush any buffered data for handle h\nglob s return file names matching glob pattern(s) (ignores stat errors)\nimport s read/eval wrapper roughly equivalent to eval[src;path;pfx] where:\n s with extension s without extension\n ---------------- ---------------------------------\n pfx~basename s pfx~sub[\"/\";\".\"]s\n path~s path~s+\".goal\"\n src~read s src~(dirfs env\"GOALLIB\")read path\nmkdir s create new directory named s (parent must already exist)\nopen s open path s for reading, returning a handle h\nprint x print\"Hello, world!\\n\" (uses implicit $x for ~(@x)in\"sSe\")\nread h read from handle h until EOF or an error occurs\nread s read file named s into string lines:=-read\"/path/to/file\"\n or dict ..[dir:I;name:S] if s is a directory\nremove s remove the named file or empty directory\nrun s run command s or S (with arguments) run\"pwd\" run\"ls\" \"-l\"\n inherits stdin and stderr, returns its standard output or an error\n dict ..[msg:s;code:i;out:s]\nsay x same as print, but appends a newline say!5\nshell s same as run, but through \"/bin/sh\" (unix systems only) shell\"ls -l\"\nstat x returns dict ..[dir:i;mtime:i;size:i] (for filehandle h or path s)\n\nx env s set environment variable x to s\nx env 0 unset environment variable x, or clear environment if x~\"\"\nx import s same as import s, but using prefix x for globals\nx open y open path s with mode x in \"r\" \"w\" \"a\" (file read/write/append)\n or pipe from or to command s or S with \"pr\" \"pw\" (pipe read/write)\n or string s or init size i with \"sr\" \"sw\" (string read/write)\n returns handle h that may be called on:\n \"buf\" enable buffering (i) (modes \"w\" \"a\")\n \"dir\" whether file is dir (i) (mode \"r\")\n \"mode\" handle’s mode (s) (available for all modes)\n \"name\" file’s name (s) (modes \"r\" \"w\" \"a\")\n \"nobuf\" disable buffering (i) (modes \"w\" \"a\")\n \"s\" get string (s) (modes \"sr\" \"sw\")\n \"sync\" file sync (i or e) (modes \"w\" \"a\")\n open and run also accept x as a dict: see FAQ for advanced usage\nx print y print y to handle/path x \"/path/to/file\"print\"content\"\ni read h read i bytes from reader h or until EOF, or an error occurs\ns read h read from reader h until 1-byte s, EOF, or an error occurs\nx rename y renames (moves) old path x (s) to new path y (s)\nx run s same as run s but with input string x as stdin\nx say y same as print, but appends a newline\n\nARGS command-line arguments, starting with script name\nSTDIN standard input filehandle (mode \"r\", buffered)\nSTDOUT standard output filehandle (mode \"w\", buffered)\nSTDERR standard error filehandle (mode \"w\", unbuffered)\n"