fix broken time functions

This commit is contained in:
2023-08-03 20:32:12 +02:00
parent 9bfda2fb30
commit 488766159a
3 changed files with 18 additions and 18 deletions

2
build
View File

@@ -1 +1 @@
go build -trimpath -ldflags="-s -w" -o bin/argon ./src && docker build -t ugric/argon . && docker push ugric/argon go build -trimpath -ldflags="-s -w" -o bin/argon ./src

View File

@@ -2,7 +2,6 @@ package main
import ( import (
"os" "os"
"path/filepath"
"strings" "strings"
"github.com/joho/godotenv" "github.com/joho/godotenv"
@@ -15,16 +14,12 @@ func getEnv() ArObject {
pair := strings.Split(e, "=") pair := strings.Split(e, "=")
env[pair[0]] = ArString(pair[1]) env[pair[0]] = ArString(pair[1])
} }
cwd, err := os.Getwd() err := godotenv.Load(".env")
if err == nil { if err == nil {
envfile := filepath.Join(cwd, ".env") values, err := godotenv.Read()
err := godotenv.Load(envfile)
if err == nil { if err == nil {
values, err := godotenv.Read() for k, v := range values {
if err == nil { env[k] = ArString(v)
for k, v := range values {
env[k] = ArString(v)
}
} }
} }
} }

View File

@@ -1,6 +1,7 @@
package main package main
import ( import (
"fmt"
"time" "time"
) )
@@ -102,11 +103,14 @@ func ArTimeClass(N time.Time) ArObject {
var ArTime = Map(anymap{ var ArTime = Map(anymap{
"snooze": builtinFunc{"snooze", func(a ...any) (any, ArErr) { "snooze": builtinFunc{"snooze", func(a ...any) (any, ArErr) {
if len(a) > 0 { if len(a) == 1 {
float, _ := a[0].(number).Float64() float, _ := a[0].(number).Float64()
time.Sleep(time.Duration(float*1000000000) * time.Nanosecond) time.Sleep(time.Duration(float*1000000000) * time.Nanosecond)
} }
return nil, ArErr{} return nil, ArErr{
TYPE: "Runtime Error",
message: "snooze requires 1 argument",
}
}}, }},
"now": builtinFunc{"now", func(a ...any) (any, ArErr) { "now": builtinFunc{"now", func(a ...any) (any, ArErr) {
return ArTimeClass(time.Now()), ArErr{} return ArTimeClass(time.Now()), ArErr{}
@@ -129,7 +133,7 @@ var ArTime = Map(anymap{
} }
} }
return ArTimeClass(N), ArErr{} return ArTimeClass(N), ArErr{}
} else if len(a) > 1 { } else if len(a) == 2 {
if typeof(a[0]) != "string" { if typeof(a[0]) != "string" {
return nil, ArErr{ return nil, ArErr{
TYPE: "Runtime Error", TYPE: "Runtime Error",
@@ -163,7 +167,7 @@ var ArTime = Map(anymap{
} }
}}, }},
"parseInLocation": builtinFunc{"parseInLocation", func(a ...any) (any, ArErr) { "parseInLocation": builtinFunc{"parseInLocation", func(a ...any) (any, ArErr) {
if len(a) != 2 { if len(a) == 2 {
if typeof(a[0]) != "string" || typeof(a[1]) != "string" { if typeof(a[0]) != "string" || typeof(a[1]) != "string" {
return nil, ArErr{ return nil, ArErr{
TYPE: "Runtime Error", TYPE: "Runtime Error",
@@ -191,7 +195,8 @@ var ArTime = Map(anymap{
}, },
}, },
"date": builtinFunc{"date", func(a ...any) (any, ArErr) { "date": builtinFunc{"date", func(a ...any) (any, ArErr) {
if len(a) != 1 { fmt.Println(a, len(a))
if len(a) == 1 {
if typeof(a[0]) != "string" { if typeof(a[0]) != "string" {
return nil, ArErr{ return nil, ArErr{
TYPE: "Runtime Error", TYPE: "Runtime Error",
@@ -218,7 +223,7 @@ var ArTime = Map(anymap{
}, },
}, },
"unix": builtinFunc{"unix", func(a ...any) (any, ArErr) { "unix": builtinFunc{"unix", func(a ...any) (any, ArErr) {
if len(a) != 2 { if len(a) == 2 {
if typeof(a[0]) != "number" || typeof(a[1]) != "number" { if typeof(a[0]) != "number" || typeof(a[1]) != "number" {
return nil, ArErr{ return nil, ArErr{
TYPE: "Runtime Error", TYPE: "Runtime Error",
@@ -238,7 +243,7 @@ var ArTime = Map(anymap{
}, },
}, },
"unixMilli": builtinFunc{"unixMilli", func(a ...any) (any, ArErr) { "unixMilli": builtinFunc{"unixMilli", func(a ...any) (any, ArErr) {
if len(a) != 1 { if len(a) == 1 {
if typeof(a[0]) != "number" { if typeof(a[0]) != "number" {
return nil, ArErr{ return nil, ArErr{
TYPE: "Runtime Error", TYPE: "Runtime Error",
@@ -257,7 +262,7 @@ var ArTime = Map(anymap{
}, },
}, },
"unixMicro": builtinFunc{"unixMicro", func(a ...any) (any, ArErr) { "unixMicro": builtinFunc{"unixMicro", func(a ...any) (any, ArErr) {
if len(a) > 0 { if len(a) == 1 {
if typeof(a[0]) != "number" { if typeof(a[0]) != "number" {
return nil, ArErr{ return nil, ArErr{
TYPE: "Runtime Error", TYPE: "Runtime Error",