summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go141
1 files changed, 0 insertions, 141 deletions
diff --git a/main.go b/main.go
deleted file mode 100644
index c9923bd77..000000000
--- a/main.go
+++ /dev/null
@@ -1,141 +0,0 @@
-// Copyright 2018 Ryan Dahl <ry@tinyclouds.org>
-// All rights reserved. MIT License.
-package deno
-
-import (
- "flag"
- "fmt"
- "os"
- "path"
- "runtime/pprof"
-
- "github.com/ry/v8worker2"
-)
-
-var flagReload = flag.Bool("reload", false, "Reload cached remote source code.")
-var flagV8Options = flag.Bool("v8-options", false, "Print V8 command line options.")
-var flagDebug = flag.Bool("debug", false, "Enable debug output.")
-var flagCPUProf = flag.String("cpuprof", "", "Write golang cpu profile to file.")
-var flagMemProf = flag.String("memprof", "", "Write golang memory profile to file.")
-
-var flagAllowRead = flag.Bool("allow-read", true,
- "Allow program to read file system.")
-var flagAllowWrite = flag.Bool("allow-write", false,
- "Allow program to write to the fs.")
-var flagAllowNet = flag.Bool("allow-net", false,
- "Allow program to make network connection.")
-
-var memProfile *os.File
-
-var Perms struct {
- FsRead bool
- FsWrite bool
- Net bool
-}
-
-func setPerms() {
- Perms.FsRead = *flagAllowRead
- Perms.FsWrite = *flagAllowWrite
- Perms.Net = *flagAllowNet
-}
-
-func stringAsset(filename string) string {
- data, err := Asset(path.Join("dist", filename))
- check(err)
- return string(data)
-}
-
-func FlagsParse() []string {
- flag.Parse()
- args := flag.Args()
- setPerms()
- if *flagV8Options {
- args = append(args, "--help")
- }
- // Adding this causes testdata/007_stack_trace.ts to fail without a
- // stacktrace.
- // args = append(args, "--abort-on-uncaught-exception")
- args = v8worker2.SetFlags(args)
-
- return args
-}
-
-// There is a single global worker for this process.
-// This file should be the only part of deno that directly access it, so that
-// all interaction with V8 can go through a single point.
-var worker *v8worker2.Worker
-var workerArgs []string
-var main_js string
-var main_map string
-
-func Init() {
- workerArgs = FlagsParse()
-
- if len(workerArgs) == 0 {
- fmt.Fprintf(os.Stderr, "Usage: %s file.ts\n", os.Args[0])
- flag.PrintDefaults()
- os.Exit(1)
- }
-
- // Maybe start Golang profilers.
- // Use --prof for profiling JS.
- StartProfiling()
-
- createDirs()
- InitOS()
- InitEcho()
- InitTimers()
- InitFetch()
-
- worker = v8worker2.New(recv)
-
- main_js = stringAsset("main.js")
- err := worker.Load("/main.js", main_js)
- exitOnError(err)
- main_map = stringAsset("main.map")
-}
-
-func StartProfiling() {
- if *flagCPUProf != "" {
- cpuProfile, err := os.Create(*flagCPUProf)
- check(err)
- check(pprof.StartCPUProfile(cpuProfile))
- }
- if *flagMemProf != "" {
- var err error
- memProfile, err = os.Create(*flagMemProf)
- check(err)
- check(pprof.WriteHeapProfile(memProfile))
- }
-}
-
-func stopProfiling() {
- if *flagCPUProf != "" {
- pprof.StopCPUProfile()
- }
- if *flagMemProf != "" {
- check(memProfile.Close())
- }
-}
-
-// It's up to library users to call
-// deno.Eval("deno_main.js", "denoMain()")
-func Eval(filename string, code string) {
- err := worker.Load(filename, code)
- exitOnError(err)
-}
-
-func Loop() {
- cwd, err := os.Getwd()
- check(err)
- PubMsg("start", &Msg{
- Command: Msg_START,
- StartCwd: cwd,
- StartArgv: workerArgs,
- StartDebugFlag: *flagDebug,
- StartMainJs: main_js,
- StartMainMap: main_map,
- })
- DispatchLoop()
- stopProfiling()
-}