diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2018-05-27 12:49:20 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-05-27 12:49:20 -0400 |
commit | 4e55928063b4f3378d2e9425c551ce0288ca39a2 (patch) | |
tree | 7c7959f3aaaf11ebd6f229ec9fd36d30035597f2 /os.go | |
parent | a831d1e2391e67f6d6ad3284ab9858d9b8d610c1 (diff) |
Add readFileSync
Diffstat (limited to 'os.go')
-rw-r--r-- | os.go | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -2,6 +2,7 @@ package main import ( "github.com/golang/protobuf/proto" + "github.com/spf13/afero" "io/ioutil" "net/url" "os" @@ -11,7 +12,11 @@ import ( const assetPrefix string = "/$asset$/" +var fs afero.Fs + func InitOS() { + fs = afero.NewOsFs() + Sub("os", func(buf []byte) []byte { msg := &Msg{} check(proto.Unmarshal(buf, msg)) @@ -27,6 +32,8 @@ func InitOS() { msg.CodeCacheOutputCode) case Msg_EXIT: os.Exit(int(msg.ExitCode)) + case Msg_READ_FILE_SYNC: + return ReadFileSync(msg.ReadFileSyncFilename) default: panic("[os] Unexpected message " + string(buf)) } @@ -128,3 +135,18 @@ func HandleCodeCache(filename string, sourceCode string, check(err) return out } + +func ReadFileSync(filename string) []byte { + data, err := afero.ReadFile(fs, filename) + res := &Msg{ + Command: Msg_READ_FILE_SYNC_RES, + } + if err != nil { + res.Error = err.Error() + } else { + res.ReadFileSyncData = data + } + out, err := proto.Marshal(res) + check(err) + return out +} |