aboutsummaryrefslogtreecommitdiff
path: root/wasm
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2023-03-28 13:39:12 -0400
committerXe Iaso <me@xeiaso.net>2023-03-28 13:39:12 -0400
commit12c1d317138d124c2e54cb94da045bdb832d22f3 (patch)
treef7d1849ed4da847c4f6f4bc96a6a188f8d1fb353 /wasm
parentfda27095a9098b3b536d1e6ab9aa11a47ab3523c (diff)
downloadx-12c1d317138d124c2e54cb94da045bdb832d22f3.tar.xz
x-12c1d317138d124c2e54cb94da045bdb832d22f3.zip
add wasip1 experiments
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'wasm')
-rw-r--r--wasm/wasip1/.gitignore1
-rw-r--r--wasm/wasip1/Makefile12
-rw-r--r--wasm/wasip1/cat.go31
-rw-r--r--wasm/wasip1/envdump.go16
-rw-r--r--wasm/wasip1/hello.go7
5 files changed, 67 insertions, 0 deletions
diff --git a/wasm/wasip1/.gitignore b/wasm/wasip1/.gitignore
new file mode 100644
index 0000000..19e1bce
--- /dev/null
+++ b/wasm/wasip1/.gitignore
@@ -0,0 +1 @@
+*.wasm
diff --git a/wasm/wasip1/Makefile b/wasm/wasip1/Makefile
new file mode 100644
index 0000000..c5cc92d
--- /dev/null
+++ b/wasm/wasip1/Makefile
@@ -0,0 +1,12 @@
+GOBIN = gowasi
+
+export GOARCH = wasm
+export GOOS = wasip1
+
+SOURCES := $(wildcard *.go)
+OBJECTS := $(patsubst %.go, %.wasm, $(SOURCES))
+
+%.wasm: %.go
+ $(GOBIN) build -o $@ $^
+
+all: $(OBJECTS)
diff --git a/wasm/wasip1/cat.go b/wasm/wasip1/cat.go
new file mode 100644
index 0000000..a327d9d
--- /dev/null
+++ b/wasm/wasip1/cat.go
@@ -0,0 +1,31 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "io"
+ "log"
+ "os"
+)
+
+func main() {
+ flag.Usage = func() {
+ fmt.Printf("%s <file>\n\nprints file to standard out\n", os.Args[0])
+ }
+ flag.Parse()
+
+ if flag.NArg() != 1 {
+ log.Fatalf("wanted 1 arg, got %#v", os.Args)
+ }
+
+ fin, err := os.Open(flag.Arg(0))
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer fin.Close()
+
+ _, err = io.Copy(os.Stdout, fin)
+ if err != nil {
+ log.Fatal(err)
+ }
+}
diff --git a/wasm/wasip1/envdump.go b/wasm/wasip1/envdump.go
new file mode 100644
index 0000000..79dedc5
--- /dev/null
+++ b/wasm/wasip1/envdump.go
@@ -0,0 +1,16 @@
+package main
+
+import (
+ "fmt"
+ "os"
+)
+
+func main() {
+ if len(os.Environ()) == 0 {
+ fmt.Println("No environment variables found")
+ return
+ }
+ for _, kv := range os.Environ() {
+ fmt.Println(kv)
+ }
+}
diff --git a/wasm/wasip1/hello.go b/wasm/wasip1/hello.go
new file mode 100644
index 0000000..db5bdb6
--- /dev/null
+++ b/wasm/wasip1/hello.go
@@ -0,0 +1,7 @@
+package main
+
+import "log"
+
+func main() {
+ log.Println("Hello, world!")
+}